1 import java.util.*;
2 public class Chaper4and5 {
3 public static void main(String args[]){
4 //-------------------------------------------------------------------------------------------------------------------
5 int x=0;
6 for(;;){
7 System.out.println(x);
8 if(x>2){
9 break;
10 }
11 x++;
12 }
13
14 //foreach语句
15 int arr[]={5,65,32};
16 for(int i : arr){
17 System.out.println(i);
18 }
19
20 //-------------------------------------------------------------------------------------------------------------------
21 //等价于String s=new String("adrty");
22 char a[]={'a','d','r','t','y'};
23 String s=new String(a);
24 System.out.println(s);
25 char s2[]={'a','d','m','i','n','i','s','t','r','a','t','o','r'};
26 s=new String(s2,0,5);//下标0开始,取5个,此处s2不可为“administrator”
27 System.out.println(s);
28 String s3="hellow";
29 System.out.println(s3);
30 //-------------------------------------------------------------------------------------------------------------------
31
32 String st="i love you";
33 //查找字符串返回位置(下标)
34 System.out.println(st.length());//10(0~9)
35 System.out.println(st.indexOf("o"));//3
36 System.out.println(st.indexOf("ove"));//3
37 System.out.println(st.indexOf("ovy"));//-1
38 System.out.println(st.lastIndexOf("o"));//8
39 //索引指定位置的字符
40 System.out.println(st.charAt(4));//v
41 //截取子串
42 System.out.println(st.substring(4));//从4开始(包括4)
43 System.out.println(st.substring(0,4));//范围即 [ 0 , 4 )
44 //剃去两头的空格
45 st=" i love you ";
46 System.out.println(st.trim());
47 //字符串替换
48 st="i love you";
49 System.out.println(st.replace("love", "dislike"));
50 System.out.println(st.replace("like", "dislike"));//直接按原来的输出:i love you
51 System.out.println(st.replace("o", "AA"));//全换
52 //判断是否以指定串开始或结束
53 System.out.println(st.startsWith("i"));//输出true,若st=" i love you "则输出false
54 System.out.println(st.endsWith("you"));//true
55 //-------------------------------------------------------------------------------------------------------------------
56
57 //判断串相等
58 String st2="i love you";
59 String st3="i love you";
60 System.out.println(st2==st3);//输出true
61 System.out.println(st2.equals(st3));//输出true
62
63 String tom=new String("hash");
64 String tom2=new String("hash");
65 System.out.println(tom==tom2);//输出false
66 System.out.println(tom.equals(tom2));//输出true
67 //可见,对于new操作符产生的字符串,“==”比较的是地址,str.equals(str2)比较的是内容
68 //对于字符串常量赋值产生的字符串,“==”与str.equals(str2)结果是一样的
69 //-------------------------------------------------------------------------------------------------------------------
70
71 //字典顺序比较、大小写转换(数字或非字符不受影响)及字符串分割
72 String tom3=new String("Hellow");
73 String tom4=new String("Error");
74 System.out.println(tom3.compareTo(tom4));//3;相同则为0
75
76 System.out.println(tom3.toLowerCase());//hellow
77 System.out.println(tom4.toUpperCase());//ERROR
78
79 System.out.println(tom3.split("e")[0]);//H
80 System.out.println(tom3.split("e")[1]);//llow; 可见分隔符那个字符被遗弃了
81
82 for(String y : tom3.split("e|o")){ //foreach语句;“e|o”为正则表达式
83 System.out.println(y);
84 } //输出H ll w (分三行输出)
85
86 tom3="abc2def2ghi2jkl";
87 for(String z : tom3.split("2",3)){ //3是限制分割的段数
88 System.out.println(z);
89 } //输出abc def ghi2jkl (分三行输出)
90 //-------------------------------------------------------------------------------------------------------------------
91
92 //使用正则表达式
93 ////其中,w相当于字符串,{2,3}限制其长度为2或3,‘\.'为点号的转移字符;而'.'则代表仁义字符
94 String mail="\\w+@\\w+(\\.\\w{2,3})*\\.\\w{2,3}";
95 String strmail="13623422345@google.cel.com";
96 System.out.println(strmail.matches(mail));//true
97 //-------------------------------------------------------------------------------------------------------------------
98 //日期和时间字符串格式化
99 Date date = new Date(); // 创建Date对象date并获取系统日期
100 String year = String.format("%tY", date); // 将date进行格式化
101 String month = String.format("%tB", date);
102 String day = String.format("%td", date);
103 String hour=String.format("%tH", date);
104 String minute=String.format("%tM", date);
105 String second=String.format("%tS", date);
106 System.out.println("今年是:" + year + "年"); // 输出信息
107 System.out.println("现在是:" + month);
108 System.out.println("今天是:" + day + "号");
109 System.out.println("现在是:" + hour+"点");
110 System.out.println("现在是:" + minute+"分");
111 System.out.println("现在是:" + second+"秒");
112 //-------------------------------------------------------------------------------------------------------------------
113 //字符串生成器StringBuilder,以效率来说明修改字符串的一般法和生成器的区别
114 String str = "";
115 long starTime = System.currentTimeMillis();
116 for (int ia = 0; ia < 10000; ia++) {
117 str = str + ia; // 循环追加字符串
118 }
119 long endTime = System.currentTimeMillis(); // 定义对字符串操作后的时间
120 long time = endTime - starTime; // 计算对字符串执行操作的时间
121 System.out.println("Sting消耗时间:" + time); // 将执行的时间输出
122
123 StringBuilder builder = new StringBuilder(""); // 创建字符串生成器
124 starTime = System.currentTimeMillis(); // 定义操作执行前的时间
125 for (int ja = 0; ja < 10000; ja++) { // 利用for循环进行操作
126 builder.append(ja); // 循环追加字符
127 }
128 endTime = System.currentTimeMillis(); // 定义操作后的时间
129 time = endTime - starTime; // 追加操作执行的时间
130 System.out.println("StringBuilder消耗时间:" + time); // 将操作时间输出
131
132 }
133
134 }