一、实验目的:
1、学习字符串String,Stringtime类的使用方法
2、简单正则表达式的使用方法
3、日期和日历类的使用方法
4、使用数据类型包装器进行数据类型转换
二、实验环境:
JAVA + Window + Eclipse
三、实验内容:
1、将一个字符串中的小写字母变成大写字母,并将大写字母变成小写字母
package code4;
import java.util.Scanner;
public class str {
public static String StringChange(String s){
StringBuilder a=new StringBuilder();
int len=s.length();
char c;
for(int i=0;i<len;i++) {
c=s.charAt(i);
if(c>='a' && c<='z')
{
c=(char)(c-32);}
else if(c>='A' && c<='Z')
{
c=(char)(c+32);}
a.append(c);
}
return a.toString();
}
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("请要转换的英文字符串:");
Scanner input=new Scanner(System.in);
String s=input.next();
System.out.println("你输入内容是:"+s);
System.out.println("转换后字符串为");
System.out.println(StringChange(s));
}}
2、找出两个字符串中所有共同的字符代码:
package code4;
import java.util.Scanner;
public class array {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("输入第一个字符串:");
Scanner input=new Scanner(System.in);
String s1=input.next();
System.out.println("输入第二个字符串:");
Scanner input1=new Scanner(System.in);
String s2=input1.next();
for (int i=0;i<s1.length();i++){
for (int j=0;j<s2.length();j++){
if (s2.charAt(j) == s1.charAt(i)){
System.out.println(s2.charAt(j));
}
}
}
}}
3、定义一个正则表达式识别字符串的邮件地址。
package code4;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class regex {
public static void main(String[] args) {
// TODO Auto-generated method stub
String fileContent="张三的邮箱是:[email protected] 1212 李四的邮箱:[email protected] 王五的邮箱:[email protected]";
//用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 code4;
import java.util.Collections;
import java.util.Map;
//import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeSet;
import java.util.Iterator;
import java.util.HashMap;
public class grade {
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum=0,each;
HashMap<String,Integer> hm=new HashMap<String,Integer>();
hm.put("A", 58);
hm.put("B", 32);
hm.put("C", 34);
hm.put("D", 98);
hm.put("E", 78);
hm.put("F", 86);
hm.put("G", 48);
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.print(i.next()+" ");
}
System.out.println();
System.out.println("最大值为:"+Collections.max(ts));
System.out.println("最小值为:"+Collections.min(ts));
System.out.println("平均值为:"+sum/ts.size());
}}
5、给定一个整数-1234567,输出它的二进制,八进制,十六进制表示形式
package code4;
import java.util.Scanner;
public class zheng {
public static void main(String[] args) {
// TODO Auto-generated method stub
int n;
System.out.println("输入一个整数:");
Scanner s=new Scanner(System.in);
n=s.nextInt();
System.out.println("二进制:" + Integer.toBinaryString(n));
System.out.println("八进制:" + Integer.toOctalString(n));
System.out.println("十六进制:" + Integer.toHexString(n));
}}
6、编写一个程序,检查当前系统的Java版本和类路经代码:
package code4;
public class version {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("版本:"); System.out.println(System.getProperty("java.version"));
System.out.println("类路径:"); System.out.println(System.getProperty("java.class.path"));
}}
7、编写JAVA程序,在其中调用外部程序cmd,并显示输出结果。
package code4;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class cmd {
public static void main(String[] args) {
// TODO Auto-generated method stub
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 code4;
import java.text.SimpleDateFormat;
import java.util.Date;
public class time {
public static void main(String[] args) {
// TODO Auto-generated method stub
Date ss = new Date();
System.out.println("一般日期输出:" + ss);
SimpleDateFormat format0 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time = format0.format(ss.getTime());
SimpleDateFormat format1 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
time = format1.format(ss.getTime());
System.out.println("格式化结果1:" + time);
}
}
四、心得体会:
这个实验学习了字符串String、Stringtime类日期和日历类的使用方法以及简单正则表达式的使用方法。还有字符数组向字符串的转换。String类中包含了许多可以直接调用的经常使用的方法。学习了很多知识,比如发现string每次定义新的对象都会在新的栈中开辟空间用以来存储值。对于String 的迭代,可以使用for循环,利用charAt(i)获取,或者用for(Character c: A) 来遍历等等。不过还有很多内容没有了解通透,会花时间去深入学习的。