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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章