1 package com;
2
3 import java.text.DecimalFormat;
4
5 public class Test3 {
6
7 public static void main(String[] args) {
8 System.out.println("This a java program!");
9 args[0] = "1";
10 args[1] = "2";
11 args[2] = "3";
12 System.out.println("arg is" + args[0] + " " + args[1] + " " + args[2]);
13
14 // NO.1 2-1 什么是java中的字符串
15 // 定义字符串
16 String hobby = "爱慕可";
17 String url = "dd";
18
19 // 输出字符串
20 System.out.println("hobby:" + hobby);
21 System.out.println("url:" + url);
22
23 // NO.2 2-2 java中字符串的不变性
24 String s1 = "imooc";
25 String s2 = "imooc";
26
27 // 定义字符串s3,保存“I love”和s1拼接后的内容
28 String s3 = "I love" + s1;
29
30 // 比较字符串s1和s2
31 // imooc为常量字符串,多次出现时会被编译器优化,只创建一个对象
32 System.out.println("s1和s2内存地址相同吗?" + (s1 == s2));
33 System.out.println("s1和s2内容相同吗?" + (s1.equals(s2)));
34 // 比较字符串s1和s3
35 System.out.println("s1和s3内存地址相同吗?" + (s1 == s3));
36 System.out.println("s1和s3内容相同吗?" + (s1.equals(s3)));
37 String s4 = "I love" + s1;
38 // 比较字符串s4和s3
39 // s1是变量,s4在运行时才知道具体值,所以s3和s4是不同的对象
40 System.out.println("s3和s4内存地址相同吗?" + (s4 == s3));
41 System.out.println("s3和s4内容相同吗?" + (s4.equals(s3)));
42
43 // NO.3 2-3 java中String类的常用方法I
44 // Java文件名
45 String fileName = "HelloWorld.java";
46 // 邮箱
47 String email = "laurenyang@imooc.com";
48
49 // 判断.java文件名是否正确:合法的文件名应该以.java结尾
50 /*
51 * 参考步骤: 1、获取文件名中最后一次出现"."号的位置 2、根据"."号的位置,获取文件的后缀 3、判断"."号位置及文件后缀名
52 */
53 // 获取文件名中最后一次出现"."号的位置
54 int index = fileName.lastIndexOf(".");
55 System.out.println(index);
56
57 // 获取文件的后缀
58 String prefix = fileName.substring(index + 1, fileName.length());
59 System.out.println(prefix);
60 // 判断必须包含"."号,且不能出现在首位,同时后缀名为"java"
61 if (prefix.equals("java")) {
62
63 System.out.println("Java文件名正确");
64 } else {
65 System.out.println(index);
66
67 System.out.println(prefix);
68 System.out.println("Java文件名无效");
69 }
70
71 // 判断邮箱格式是否正确:合法的邮箱名中至少要包含"@", 并且"@"是在"."之前
72 /*
73 * 参考步骤: 1、获取文件名中"@"符号的位置 2、获取邮箱中"."号的位置 3、判断必须包含"@"符号,且"@"必须在"."之前
74 */
75 // 获取邮箱中"@"符号的位置
76 int index2 = email.indexOf("@");
77
78 // 获取邮箱中"."号的位置
79 int index3 = email.indexOf('.');
80
81 // 判断必须包含"@"符号,且"@"必须在"."之前
82 if (index2 != -1 && index3 > index2) {
83 System.out.println("邮箱格式正确");
84 } else {
85 System.out.println("邮箱格式无效");
86 }
87
88 // NO.4 2-5 认识java中的StringBuilder类
89 // 创建一个StringBuilder对象,用来存储字符串
90 StringBuilder hobby1 = new StringBuilder("爱慕课");
91
92 System.out.println(hobby1);
93
94 // NO.5 2-6 java中的StringBuilder类的常用方法
95 // 创建一个空的StringBuilder对象
96 StringBuilder str = new StringBuilder();
97 // 追加字符串
98 str.append("jaewkjldfxmopzdm");
99 // 从后往前每隔三位插入逗号
100 for (int i = str.length() - 3; i > 0; i = i - 3) {
101 str.insert(i, ',');
102 }
103 // 将StringBuilder对象转换为String对象并输出
104 System.out.println(str);
105 System.out.println(str.toString());
106
107 // NO.6 3-1 java中的包装类
108 // 定义int类型变量,值为86
109 int score1 = 86;
110
111 // 创建Integer包装类对象,表示变量score1的值
112 Integer score2 = new Integer(score1);
113
114 // 将Integer包装类转换为double类型
115 double score3 = score2.doubleValue();
116
117 // 将Integer包装类转换为float类型
118 float score4 = score2.floatValue();
119
120 // 将Integer包装类转换为int类型
121 int score5 = score2.intValue();
122
123 System.out.println("Integer包装类:" + score2);
124 System.out.println("double类型:" + score3);
125 System.out.println("float类型:" + score4);
126 System.out.println("int类型:" + score5);
127
128 // NO.7 3-2 java中基本类型和包装类之间的转换
129 // 定义double类型变量
130 double a = 91.5;
131
132 // 手动装箱
133 Double b = new Double(a);
134
135 // 自动装箱
136 Double c = a;
137
138 System.out.println("装箱后的结果为:" + b + "和" + c);
139
140 // 定义一个Double包装类对象,值为8
141 Double d = new Double(87.0);
142
143 // 手动拆箱
144 double e = d.doubleValue();
145
146 // 自动拆箱
147 double f = d;
148
149 System.out.println("拆箱后的结果为:" + e + "和" + f);
150
151 // NO.8 3-4 java中基本类型和字符串之间的转换
152 double m = 78.5;
153 // 将基本类型转换为字符串
154 String str1 = Double.toString(m);
155
156 System.out.println("m 转换为String型后与整数20的求和结果为: " + (str1 + 20));
157
158 String str2 = "180.256";
159 // 将字符串转换为基本类型
160 Double a1 = Double.valueOf(str2);
161
162 DecimalFormat df = new DecimalFormat(".00");
163 String a2 = df.format(a1);
164 System.out.println(a1);
165 System.out.println(a2);
166 System.out.println("str 转换为double型后与整数20的求和结果为: " + (a1 + 20));
167 }
168 }