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
方法去除体重字符串中的空格,并将其转换为整数。最后根据体重的值进行判断,输出相应的提示信息。
这样,我们就对这段代码进行了逐段的具体分析。这段代码的主要功能是解析字符串中的个人信息并输出相应的结果。需要注意的是,代码中可能存在一些格式约定的假设,并且没有处理异常情况。
文章来源:https://www.toymoban.com/news/detail-667901.html
文章来源地址https://www.toymoban.com/news/detail-667901.html
到了这里,关于Java程序设计——在一个给定的字符串中查找并解析姓名、出生日期、个人网站、身高和体重信息,并输出相应的结果的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!