package ch4;
public class FindMess
{
public static void main(String[] args) {
String mess = "姓名:張三 出生時(shí)間:1989.10.16。個(gè)人網(wǎng)站:http://www.zhang.com。身高:185 cm,體重:72 kg";
int index = (int)(mess.indexOf(":")); //mess調(diào)用indexOf(String s)方法返回字符串中首次出現(xiàn)冒號(hào)的位置
String name = mess.substring(index+1);
if(name.startsWith("張")) {
System.out.println("簡(jiǎn)歷中的姓名姓\(chéng)"張\"");
}
index = mess.indexOf(":",index+2);//mess調(diào)用indexOf(String s,int start)方法返回字符串中第2次出現(xiàn)冒號(hào)的位置
String date = mess.substring(index+1,index+11);
System.out.println(date);
index = mess.indexOf(":",index+1);
int heightPosition =mess.indexOf("身高",index+1); // mess調(diào)用indexOf(String s)方法返回字符串中首次出現(xiàn)"身高"的位置
String personNet = mess.substring(index+1,heightPosition-1);
System.out.println(personNet);
index = mess.indexOf("身高:",index+1); //mess調(diào)用indexOf(String s,int start)方法返回字符串中"身高"后面的冒號(hào)位置
int cmPosition = mess.indexOf("cm");
String height = mess.substring(index+1,cmPosition);
height = height.trim();
int h = Integer.parseInt(height);
if(h>=180) {
System.out.println("簡(jiǎn)歷中的身高"+height+"大于或等于180 cm");
}
else {
System.out.println("簡(jiǎn)歷中的身高"+height+"小于180 cm");
}
index = mess.indexOf(":",index+3);//mess調(diào)用lastIndexOf(String s)返回字符串中最后一個(gè)冒號(hào)位置
int kgPosition = mess.indexOf("kg");
String weight = mess.substring(index+1,kgPosition);
weight = weight.trim();
int w = Integer.parseInt(weight);
if(w>=75) {
System.out.println("簡(jiǎn)歷中的體重"+weight+"大于或等于75 kg");
}
else {
System.out.println("簡(jiǎn)歷中的體重"+weight+"小于75 kg");
}
}// TODO Auto-generated method stub
}
當(dāng)我們分析這段代碼時(shí),可以按照代碼的邏輯結(jié)構(gòu)進(jìn)行分段:
-
獲取姓名:
int index = (int)(mess.indexOf(":")); String name = mess.substring(index+1); if(name.startsWith("張")) { System.out.println("簡(jiǎn)歷中的姓名姓\(chéng)"張\""); }
在這個(gè)部分,首先使用?
indexOf
?方法查找冒號(hào)的位置。然后,使用?substring
?方法將冒號(hào)后面的字符串截取出來(lái),得到姓名。接下來(lái),使用?startsWith
?方法判斷姓名是否以 “張” 開(kāi)頭,如果是則輸出相應(yīng)的提示信息。 -
獲取出生日期:
index = mess.indexOf(":",index+2); String date = mess.substring(index+1,index+11); System.out.println(date);
這部分使用?
indexOf
?方法找到第二個(gè)冒號(hào)的位置,然后使用?substring
?方法截取冒號(hào)后面的11個(gè)字符,得到出生日期。最后打印出生日期。 -
獲取個(gè)人網(wǎng)站:
index = mess.indexOf(":",index+1); int heightPosition =mess.indexOf("身高",index+1); String personNet = mess.substring(index+1,heightPosition-1); System.out.println(personNet);
代碼中使用?
indexOf
?方法找到第三個(gè)冒號(hào)的位置,然后使用?indexOf
?方法找到 “身高” 的位置。接著使用?substring
?方法截取冒號(hào)和 “身高” 之間的字符串,得到個(gè)人網(wǎng)站。最后打印個(gè)人網(wǎng)站。 -
獲取身高:
index = mess.indexOf("身高:",index+1); int cmPosition = mess.indexOf("cm"); String height = mess.substring(index+1,cmPosition); height = height.trim(); int h = Integer.parseInt(height); if(h>=180) { System.out.println("簡(jiǎn)歷中的身高"+height+"大于或等于180 cm"); } else { System.out.println("簡(jiǎn)歷中的身高"+height+"小于180 cm"); }
這部分首先使用?
indexOf
?方法找到最后一個(gè)冒號(hào)的位置,然后使用?indexOf
?方法找到 “cm” 的位置。接著使用?substring
?方法截取冒號(hào)和 “cm” 之間的字符串,得到身高。使用?trim
?方法去除身高字符串中的空格,并將其轉(zhuǎn)換為整數(shù)。最后根據(jù)身高的值進(jìn)行判斷,輸出相應(yīng)的提示信息。 -
獲取體重:
index = mess.indexOf(":",index+3); int kgPosition = mess.indexOf("kg"); String weight = mess.substring(index+1,kgPosition); weight = weight.trim(); int w = Integer.parseInt(weight); if(w>=75) { System.out.println("簡(jiǎn)歷中的體重"+weight+"大于或等于75 kg"); } else { System.out.println("簡(jiǎn)歷中的體重"+weight+"小于75 kg"); }
在這一部分,首先使用?
indexOf
?方法找到倒數(shù)第二個(gè)冒號(hào)的位置,然后使用?indexOf
?方法找到 “kg” 的位置。接著使用?substring
?方法截取冒號(hào)和 “kg” 之間的字符串,得到體重。使用?trim
?方法去除體重字符串中的空格,并將其轉(zhuǎn)換為整數(shù)。最后根據(jù)體重的值進(jìn)行判斷,輸出相應(yīng)的提示信息。
這樣,我們就對(duì)這段代碼進(jìn)行了逐段的具體分析。這段代碼的主要功能是解析字符串中的個(gè)人信息并輸出相應(yīng)的結(jié)果。需要注意的是,代碼中可能存在一些格式約定的假設(shè),并且沒(méi)有處理異常情況。
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-667901.html
?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-667901.html
到了這里,關(guān)于Java程序設(shè)計(jì)——在一個(gè)給定的字符串中查找并解析姓名、出生日期、個(gè)人網(wǎng)站、身高和體重信息,并輸出相應(yīng)的結(jié)果的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!