JAVA 常用实用类实例

1.检索例1

public class findMess{
static String test;
public static void main(String args[]){
String mess="我的自我介绍:大家好!我是lance!出生日期:1997-07-01。价值:8000。";
if(mess.contains("自我介绍"))
System.out.println("这是一个自我介绍!");
int index=mess.indexOf("是");
String name=mess.substring(index+1,index+6);
System.out.println("我的名字:"+name);
int datePosition=mess.indexOf(":",mess.indexOf(":")+1);
String date=mess.substring(datePosition+1,datePosition+11);
System.out.println("我的出生日期:"+date);
int valuePosition=mess.indexOf('值');
String value=mess.substring(valuePosition+2,valuePosition+6);
System.out.println("我的价值:"+value);
int price=Integer.parseInt(value);
if(price>5000)
System.out.println("我很贵的! ");
String rpl=mess.replaceAll("8000","9000");
System.out.println("我的价值应该是:"+rpl.substring(valuePosition+2,valuePosition+6));
test=Long.toString(9000L,2);
System.out.println("我的价值二进制表示:"+test);
System.out.println("我的价值二进制表示:"+Long.toString(9000L,2));
}
}

输出:

这是一个自我介绍!
我的名字:lance
我的出生日期:1997-07-01
我的价值:8000
我很贵的!
我的价值应该是:9000
我的价值二进制表示:10001100101000
我的价值二进制表示:10001100101000


2.检索例2

import java.util.*;
public class findMess2{
public static void main(String args[]){
String s="牛奶:89.8元,香肠:19.2元,啤酒:69元,巧克力:132元";
String regex="[^0123456789.]";//匹配非数字的正则表达式
String digitMess=s.replaceAll(regex,"*");
System.out.println(digitMess);
StringTokenizer fenxi=new StringTokenizer(digitMess,"*");//字符串分隔解析类型
int number=fenxi.countTokens();
double sum=0;
while(fenxi.hasMoreTokens()){
String str=fenxi.nextToken() ;
System.out.println(str);
sum=sum+Double.parseDouble(str);
}
System.out.println("商品种类:"+number);
System.out.println("商品总额:"+sum);
}
}


输出:

***89.8*****19.2*****69******132*
89.8
19.2
69
132
商品种类:4
商品总额:310.0

3.比较日期

import java.util.*;
public class compareDate{
public static void main(String args[]){
Scanner sc=new Scanner(System.in);
System.out.println("请输入第一个年,月,日数据:");
System.out.println("请输入第一个年份:");
short yearOne=sc.nextShort();
System.out.println("请输入第一个月份:");
byte monthOne=sc.nextByte();
System.out.println("请输入第一个日期:");
byte dayOne=sc.nextByte();
System.out.println("请输入第二个年,月,日数据:");
System.out.println("请输入第二个年份:");
short yearTwo=sc.nextShort();
System.out.println("请输入第二个月份:");
byte monthTwo=sc.nextByte();
System.out.println("请输入第二个日期:");
byte dayTwo=sc.nextByte();
Calendar cl=Calendar.getInstance();
//初始化日历对象
cl.set(yearOne,monthOne-1,dayOne);
//设置时间 注意0代表1月,11代表12月
long timeOne=cl.getTimeInMillis();
//转换时间为毫秒
cl.set(yearTwo,monthTwo-1,dayTwo);
long timeTwo=cl.getTimeInMillis();
Date date1=new Date(timeOne);
Date date2=new Date(timeTwo);
if(date2.equals(date1)){
System.out.println("两个日期的年月日完全相同");
}
else if(date2.before(date1)){
System.out.println("您输入的第二个日期早于第一个日期");
}
else if(date2.after(date1)){
System.out.println("您输入的第二个日期晚于第一个日期");
}
long days=Math.abs(timeTwo-timeOne)/(1000*60*60*24);//换算天数:24小时60分60秒1000毫秒
System.out.println("两个日期相隔的天数为:"+days+"天");
}
}

PS:注意UTC和GMT区别 

输出:

请输入第一个年,月,日数据:
请输入第一个年份:
2012
请输入第一个月份:
9
请输入第一个日期:
1
请输入第二个年,月,日数据:
请输入第二个年份:
2018
请输入第二个月份:
6
请输入第二个日期:
10
您输入的第二个日期晚于第一个日期
两个日期相隔的天数为:2108天

4.大整数运算

import java.math.*;
class handleBigInteger{
public static void main(String args[]){
BigInteger n1=new BigInteger("9898989898989898989989"),
n2=new BigInteger("1321313246543131313"),
result=null;
result=n1.add(n2);
System.out.println("加:"+result.toString());
result=n1.subtract(n2);
System.out.println("减:"+result.toString());
result=n1.multiply(n2);
System.out.println("乘:"+result.toString());
result=n1.divide(n2);
System.out.println("除:"+result.toString());
BigInteger m=new BigInteger("1968785"),
       COUNT=new BigInteger("0");
// BigInteger ONE=new BigInteger("1");
// BigInteger TWO=new BigInteger("2");
System.out.println(m.toString()+"的因子有:");
for(BigInteger i=BigInteger.TWO;i.compareTo(m)<0;i=i.add(BigInteger.ONE)){
//for(BigInteger i=TWO;i.compareTo(m)<0;i=i.add(ONE)){  
if((n1.remainder(i).compareTo(BigInteger.ZERO))==0){
COUNT=COUNT.add(BigInteger.ONE);
System.out.print("	"+i.toString());
}
}
System.out.println();
System.out.println("一共有"+COUNT.toString()+"个因子");
}
}


输出:

加:9900311212236442121302
减:9897668585743355858676
乘:13079666480932006936886608306464099425557
除:7491
1968785的因子有:
	7	83	581	22501	157507	1867583
一共有6个因子


5.替换/模式匹配

import java.util.regex.*;
public class replaceErrorWord{
public static void main(String args[]){
String str="登录网站:222.128.89.253";
Pattern p;
Matcher m;
String regex="[\\d]{1,3}[.][\\d]{1,3}[.][\\d]{1,3}[.][\\d]{1,3}";
p=Pattern.compile(regex);
m=p.matcher(str);
String IP="";
while(m.find()){
IP=m.group();
System.out.print(m.start()+"位置出现:");
System.out.println(IP);
}
System.out.printf("将%s替换为202.192.78.56\n",IP);
String result=m.replaceAll("202.192.78.56");
System.out.println(result);
}
}

输出:

5位置出现:222.128.89.253
将222.128.89.253替换为202.192.78.56
登录网站:202.192.78.56




参考自 《java面向对象程序设计——实验指导与习题解答(张跃平等 著)》

正则表达式:

参考 1:http://www.runoob.com/java/java-regular-expressions.html

参考 2:https://www.cnblogs.com/liwendeboke/p/6061820.html


猜你喜欢

转载自blog.csdn.net/qq_38329988/article/details/80637203