JAVA常用实用类
String类
构造与引用
/构造/
String s = new String("Java");
String tom = new String(cat);
char a[]={......}
String s = new String(a);
/引用/
s1="你好";s2="你好"
判断两个字符串相同不能用==
String you="你";String good="好"
you+good!=s1或s2
+ 常用方法
num = str.length();//长度 int
if(s1.equals(s2)){}//判断相同
s.startsWith("upc");//判断前缀是否相同 boolean
str.compareTo("aba");//字典序 int
srr.comtains("upc");//是否包含 boolean
indexOf("")// 首次出现str, 最后出现str
substring(int startpoint,int endpoint)//String 子串
Arrays.sort(a);//字符串数组字典序排序
上机作业
public static void main(String []args){
String mess="姓名:张三 出生时间:1989.10.16.个人网站:http://www.zhang.com 身高:185cm,体重:72kg";
int index= mess.indexOf(":"); //返回字符串中首次出现冒号的位置
String name=mess.substring(index+1);
if(name.startsWith("张")) System.out.println("简历中的姓名姓张");
index= mess.indexOf(":",index+1); //返回字符串中第2次出现冒号的位置
String date=mess.substring(index+1,index+11);
System.out.println(date);
index=mess.indexOf(":",index+1);
int heightPosition= mess.indexOf("身",index+1);//返回字符串中首次出现身高的位置
String personNet=mess.substring(index+1,heightPosition-1);
System.out.println(personNet);
index=mess.indexOf(":",heightPosition);//返回字符串中身高后面的冒号位置
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+"大于或等于180cm");
}
else {
System.out.println("简历中的身高"+height+"小于180cm");
}
index=mess.lastIndexOf(":");//返回字符串中最后一个冒号的位置
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+"大于或等于75kg");
}
else{
System.out.println("简历中的体重"+weight+"小于75kg");
}
}
正则表达式
String 中具有特殊意义的字符序列.
元字符有:
元字符
写法
意义
.
.
任意字符
\d
\\d
0-9数字
\D
\\D
非数字
\s
\\s
空格类
\p{Lower}
\\p{Lower}
小写字母
\p{Dight}
\\p{Dight}
数字
\p{Alpha}
\p{Alpha}
字母
或者可以
[abc]: 代表a,b,c中任意一个
[ ^ abc] :abc都没有
[a-d] a-d任意一个
[a-zA-Z]代表英文字母
+ 限定符
+ X? 出现0次或多次
+ X* 出现0次或多次
+ X{n} 出现n次
+ X+ 出现1次或多次
字符串替换 replaceAll(“”)
字符串分解 split(“”)
+ 上机作业菜单:
public static void main(String[] args){
String str,s="北京烤鸭:189元,西芹炒肉:12.9元,酸菜鱼:69元,铁板牛柳:32元";
str = s.replaceAll("[^0-9元.]","");
String[] arr=str.split("元");
double tem=0;
s=s.replaceAll(",","\n");
for (int i = 0; i < arr.length; i++) {
tem+=Double.parseDouble(arr[i]);
}
System.out.println("\n---------------总菜单如下----------------\n\n"+s);
System.out.println("\n--------------------------------------\n\n");
System.out.println("总价格="+tem+"元");
}
或:
String[] arr=str.split("\\D+");
System.out.println(arr.length); //会输出4
StringTokenizer类
StringTokenizer stringTokenizer = new StringTokenizer(str,"元");
while (stringTokenizer.hasMoreTokens()){
System.out.println(stringTokenizer.nextToken());
}
区别
String.Split()使用正则表达式,而StringTokenizer的只是使用逐字分裂的字符。
如果不用正则表达式(StringTokenizer也不能使用正则表达式),StringTokenizer在截取字符串中的效率最高。
Scanner 类
区别
Scanner 以时间换空间 StringTokenizer以时间换空间
Date类与Calendat类
Date date = new Date();
long dt=315532800;//十年前 单位是ms 1000ms=1s
date.setTime(System.currentTimeMillis()-dt*1000);
/*formate方法*/
/* %ty 年 %tm 月 %td 日 */
/* %tY 4位年 */
System.out.println(String.format("%tY-%
System.out.println(String.format("%tm/%
System.out.print(String.format(Locale.CHINA,"%tY年%
时间随机
public static void main(String args[]){
int[] list = new int[]{30,40,50,60,70,80,90};
System.out.println(list[(int)(System.currentTimeMillis()%6)]);
}
数字格式化
相当于printf()
String s =Stirng.format("%.2f",3.14159);//%d %o %x %X
这篇博客详细介绍了JAVA中String类的构造与引用,包括通过字符串常量、字符数组创建String对象,以及字符串比较、长度获取、子串截取、字符查找等常用方法。此外,还讲解了如何对字符串数组进行字典序排序,并展示了在实际场景中如何从简历字符串中提取关键信息。同时,文章对比了`String.split()`与`StringTokenizer`的区别,并提供了使用正则表达式处理字符串的示例。最后,讨论了Scanner类与Date类的使用方法,以及如何生成随机时间。
2113

被折叠的 条评论
为什么被折叠?



