java实用类_JAVA常用实用类

这篇博客详细介绍了JAVA中String类的构造与引用,包括通过字符串常量、字符数组创建String对象,以及字符串比较、长度获取、子串截取、字符查找等常用方法。此外,还讲解了如何对字符串数组进行字典序排序,并展示了在实际场景中如何从简历字符串中提取关键信息。同时,文章对比了`String.split()`与`StringTokenizer`的区别,并提供了使用正则表达式处理字符串的示例。最后,讨论了Scanner类与Date类的使用方法,以及如何生成随机时间。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值