实验名称 Java标准类库 日期 2020年 06 月17 日
一、实验目的:
1、学会字符串String、StringBuffer类的使用方法。
2、学会简单正则表达式的使用方法。
3、学会使用数据类型包装器进行数据类型转换。
4、学会System类和Runtime类的使用方法。
5、学会日期和日历类的使用方法。
6、理解并掌握常用集合类的使用方法。
二、实验环境:
PC+Windows10+Eclipse
三、实验内容:
(写出主要的内容)
1.将一个字符串中的小写字母变成大写字母,并将大写字母变成小写字母。
代码:
package shiyan4;
import java.util.Scanner;
public class Change {
public static char[] change(String str) {
char [] c=str.toCharArray();
for(int i=0;i<c.length;i++) {
if(c[i]>=97&&c[i]<=122) {
c[i]=(char)(c[i]-32);
}
else if(c[i]>=65&&c[i]<=90) {
c[i]=(char)(c[i]+32);
}
else
continue;
}
return c;
}
public static void main(String[] args) {
System.out.print("请输入任意字符串:");
Scanner scanner=new Scanner(System.in);
String str=scanner.next();
scanner.close();
if(str.equals("end")) {
System.exit(0);
}
else {
char [] c=change(str);
String st=new String(c);
System.out.println("输出结果为;"+st);
}
}
}
2.找出两个字符串中所有共同的字符。
代码:
package shiyan4;
import java.util.ArrayList;
import java.util.Scanner;
public class Similar {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.print("请输入一个字符串:");
String s1=scanner.next();
System.out.print("请输入另一个字符串:");
String s2=scanner.next();
char []c1=s1.toCharArray();
char []c2=s2.toCharArray();
ArrayList lis=new ArrayList();
for(int i=0;i<c1.length;i++)
for(int j=0;j<c2.length;j++)//s1与s2每一个字母比较,相同则放进list里面
if(c1[i]==c2[j])
lis.add(c1[i]);
for(int i=0;i<lis.size();i++)
for(int j=0;j<lis.size();j++)
if(lis.get(i)==lis.get(j))
lis.remove(lis.get(j));
System.out.print("相同的字符串:");
for(int i=0;i<lis.size();i++)
System.out.print(lis.get(i));
}
}
3.定义一个正则表达式识别字符串的邮件地址。
代码:
package shiyan4;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Postcode {
public static void main(String[] args) {
String fileContent="张三的邮箱是:1234@qq.com 1212 李四的邮箱:sina@sina.com 王五的邮箱:hell@163.com";
//用Pattern编译一个表达式
Pattern p=Pattern.compile("[a-zA-Z0-9_]{1,20}@[a-zA-Z0-9]{2,10}[.](com|cn|org)");
//通过Pattern对象得到一个Matcher对象
Matcher m=p.matcher(fileContent);
//搜索符合正则表达式的子串 调用Matcher的find方法 如果找到了匹配的子串,返回真
while(m.find()){
//取出匹配的子串用group()方法
System.out.print("抓取的邮箱使用group方法:"+m.group()+" ");
System.out.println("抓取的邮箱使用start end方法:"+fileContent.substring(m.start(), m.end()));
}
}
}
4.编写一个程序,用Map实现学生成绩单的存储和查询,并且对成绩进行排序后存储到TreeSet中,求出平均成绩、最大值和最小值。
代码:
package shiyan4;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeMap;
import java.util.TreeSet;
import java.util.Iterator;
import java.util.HashMap;
public class Test{
@SuppressWarnings("unchecked")
public static void main(String[] args) {
int sum=0,each;
HashMap<String,Integer> hm=new HashMap<String,Integer>();
hm.put("小明", 60);
hm.put("小张", 16);
hm.put("小红", 34);
hm.put("小绿", 97);
hm.put("小紫", 78);
hm.put("小王八蛋", 37);
hm.put("隔壁老王",67);
Set set2=hm.keySet();
System.out.println("排序后:");
TreeSet<Integer> ts=new TreeSet<Integer>();
Set<Map.Entry<String,Integer>> set=hm.entrySet();
Iterator<Map.Entry<String,Integer>> it=set.iterator();
while(it.hasNext())
{
each=it.next().getValue();
ts.add(each);
sum += each;
}
Iterator<Integer> i=ts.iterator();
while(i.hasNext()) {
System.out.println(i.next());
}
System.out.println("最大值为:"+Collections.max(ts));
System.out.println("最小值为:"+Collections.min(ts));
System.out.println("平均值为:"+sum/ts.size());
}
}
5.给定一个整数-1234567,输出它的二进制、八进制和十六进制表示形式。
代码:
package shiyan4;
public class jinzhizhuanhuan {
public static void main(String args[]) {
int n=-1234567;
System.out.println("二进制:" + Integer.toBinaryString(n));
System.out.println("八进制:" + Integer.toOctalString(n));
System.out.println("十六进制:" + Integer.toHexString(n));
}
}
6.编写一个程序,检查当前系统的Java版本和类路径。
代码:
package shiyan4;
public class read {
public static void main(String args[]) {
System.out.print("当前系统的Java版本:");
System.out.println(System.getProperty("java.version"));
System.out.print("类路径:");
System.out.println(System.getProperty("java.class.path"));
}
}
7.编写Java程序,在其中调用外部程序cmd,并显示其输出结果。
代码:
package shiyan4;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Cmd {
public static void main(String[] args) {
BufferedReader br = null;
try {
Process p = Runtime.getRuntime().exec("net user");
br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = null;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
8.请使用java.text.SimpleDateFormat类对日期进行格式化,形式如2005年8月10日。
代码:
package shiyan4;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class Time {
public static void main(String args[]) {
SimpleDateFormat myfmt=new SimpleDateFormat("yyyy年MM月dd日");
Date now=new Date();
System.out.println(now.toString());
String ds1=myfmt.format(now);
System.out.println(ds1);
}
}
四、心得体会:
通过此次实验,学会字符串String、StringBuffer类的使用方法。学会简单正则表达式的使用方法。学会使用数据类型包装器进行数据类型转换。学会System类和Runtime类的使用方法。学会日期和日历类的使用方法。理解并掌握常用集合类的使用方法。