package ch4;public class FindMess
{public static void main(String[] args) {String mess = "姓名:张三 出生时间:1989.10.16。个人网站:http://www.zhang.com。身高:185 cm,体重:72 kg";int index = (int)(mess.indexOf(":")); //mess调用indexOf(String s)方法返回字符串中首次出现冒号的位置String name = mess.substring(index+1);if(name.startsWith("张")) {System.out.println("简历中的姓名姓\"张\"");}index = mess.indexOf(":",index+2);//mess调用indexOf(String s,int start)方法返回字符串中第2次出现冒号的位置String date = mess.substring(index+1,index+11);System.out.println(date);index = mess.indexOf(":",index+1);int heightPosition =mess.indexOf("身高",index+1); // mess调用indexOf(String s)方法返回字符串中首次出现"身高"的位置String personNet = mess.substring(index+1,heightPosition-1);System.out.println(personNet);index = mess.indexOf("身高:",index+1); //mess调用indexOf(String s,int start)方法返回字符串中"身高"后面的冒号位置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("简历中的身高"+height+"大于或等于180 cm");} else {System.out.println("简历中的身高"+height+"小于180 cm");}index = mess.indexOf(":",index+3);//mess调用lastIndexOf(String s)返回字符串中最后一个冒号位置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("简历中的体重"+weight+"大于或等于75 kg");} else {System.out.println("简历中的体重"+weight+"小于75 kg");}}// TODO Auto-generated method stub
}
当我们分析这段代码时,可以按照代码的逻辑结构进行分段:
-
获取姓名:
int index = (int)(mess.indexOf(":")); String name = mess.substring(index+1); if(name.startsWith("张")) {System.out.println("简历中的姓名姓\"张\""); }
在这个部分,首先使用
indexOf
方法查找冒号的位置。然后,使用substring
方法将冒号后面的字符串截取出来,得到姓名。接下来,使用startsWith
方法判断姓名是否以 “张” 开头,如果是则输出相应的提示信息。 -
获取出生日期:
index = mess.indexOf(":",index+2); String date = mess.substring(index+1,index+11); System.out.println(date);
这部分使用
indexOf
方法找到第二个冒号的位置,然后使用substring
方法截取冒号后面的11个字符,得到出生日期。最后打印出生日期。 -
获取个人网站:
index = mess.indexOf(":",index+1); int heightPosition =mess.indexOf("身高",index+1); String personNet = mess.substring(index+1,heightPosition-1); System.out.println(personNet);
代码中使用
indexOf
方法找到第三个冒号的位置,然后使用indexOf
方法找到 “身高” 的位置。接着使用substring
方法截取冒号和 “身高” 之间的字符串,得到个人网站。最后打印个人网站。 -
获取身高:
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("简历中的身高"+height+"大于或等于180 cm"); } else {System.out.println("简历中的身高"+height+"小于180 cm"); }
这部分首先使用
indexOf
方法找到最后一个冒号的位置,然后使用indexOf
方法找到 “cm” 的位置。接着使用substring
方法截取冒号和 “cm” 之间的字符串,得到身高。使用trim
方法去除身高字符串中的空格,并将其转换为整数。最后根据身高的值进行判断,输出相应的提示信息。 -
获取体重:
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("简历中的体重"+weight+"大于或等于75 kg"); } else {System.out.println("简历中的体重"+weight+"小于75 kg"); }
在这一部分,首先使用
indexOf
方法找到倒数第二个冒号的位置,然后使用indexOf
方法找到 “kg” 的位置。接着使用substring
方法截取冒号和 “kg” 之间的字符串,得到体重。使用trim
方法去除体重字符串中的空格,并将其转换为整数。最后根据体重的值进行判断,输出相应的提示信息。
这样,我们就对这段代码进行了逐段的具体分析。这段代码的主要功能是解析字符串中的个人信息并输出相应的结果。需要注意的是,代码中可能存在一些格式约定的假设,并且没有处理异常情况。