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


实验5 常用(2学时) 一、实验目的 1. 熟悉Java的String、StringBuffer、Math、包装器的使用方法。 2. 使用常用解决一般性的应用问题。 3. 掌握JavaSE API文档的使用方法。 二、实验内容 1. 编写一个程序,输出一个字符串的大写英文字母数,小写英文字母数以及非英文字母数。(字符串可以在main方法指定) 2. 调用java.lang.Math的成员函数“public static double random()”运算下面表达式1000次,(int) (Math.random()*20+0.5),统计其生成的整数0、1、2、……、20的个数分别是多少,并输出统计结果。 3. 编写一个方法,返回一个double型的二维数组,数组的元素通过解析字符串参数获得。例如,字符串参数:“1,2;3,4,5;6,7,8”,对应的数组为: d[0,0] = 1.0 d[0,1] = 2.0 d[1,0] = 3.0 d[1,1] = 4.0 d[1,2] = 5.0 d[2,0] = 6.0 d[2,1] = 7.0 d[2,2] = 8.0 三、实验要求 完成程序设计并提交实验报告。 实验6 容器(2学时) 一、实验目的 1. 熟悉容器常用的使用方法。 2. 使用常用容器解决一般性的应用问题。 二、实验内容 1. 用HashMap模拟一个网上购物车。要求:从键盘输入5本书的名称、单价、购买数量,将这些信息存入一个HashMap,然后将该HashMap作为参数调用方法getSum(HashMap books),该方法用于计算书的总价并返回。【说明:键盘输入可以使用Scanner】 2. 使用两个Stack(JDK容器的Stack)实现一个队列MyQueue,提供队列的入队列和出队列操作:enQueue和deQueue。 3. 写一个彩票程序:30选7。随机(1~30之间)生成7个随机数,注意不能重复。然后从键盘输入7个数,对比7个数是否与随机数有相同的。最后显示“了几个号”。同时,如果了7个号,显示一等奖;如果了6个号,显示二等奖;如果了5个号,显示三等奖。要求:首先写出程序的实现思想,特别是程序所使用的数据结构,然后写出Java实现代码。【说明:键盘输入可以使用Scanner】 三、实验要求 完成程序设计并提交实验报告。 实验7 流(2学时) 一、实验目的 1. 熟悉流各种常用流的使用方法。 2. 能够使用流实现基本的文件读写。 二、实验内容 1. 编写程序,在控制台窗口提示输入两个整数,然后接收这两个整数,并输出它们的和。(要求:键盘输入通过流封装System.in获取,不要使用Scanner) 2. 设计学生Student,属性:编号(整型);姓名(字符串),成绩(整型)。编写一个程序:要求:(1)输入5个学生的姓名和成绩,将其姓名和成绩保存到data.txt;(2)然后从该文件读取数据,求得这五个学生的平均成绩。 三、实验要求 完成程序设计并提交实验报告。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值