一、實驗目的:
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) 來周遊等等。不過還有很多内容沒有了解通透,會花時間去深入學習的。