从这里开始记录我的从零开始学习Java的记录。算是一种学习笔记吧,也是为了督促自己学习。刚经历了比较受打击的一件事,大类招生专业分流时严重滑档,去了不想去的专业,反省了很久,确实大一不太上心。事实上对大类招生的同学来说,大一一整年,都不是可以考试后放松的一年,也叫做“高四”吧。这点现在才想通确实很晚,下学期想过弥补确实来不及了。
所以希望下学期转专业能顺利一点,从现在开始努力吧。
学过C语言,所以直接从字符串开始
创建字符串
char a[]={'g','o','o','d'};
String s = new String(a);
//等价于
String s = new String("good");
char a[]={'g','o','o','d'};
String s = new String(a,1,3);
//等价于
String s = new String("ood");
//字符串常量
String str;
str = "We are students.";
连接多个字符串
“+” 加号就能实现
String s1 = new String("hello");
String s2 = new String("world");
String s = s1+" "+s2;
System.out.println(s);
这里值得一提的是System.out.println()在Eclipse中可以使用输入syso+Alt+/直接唤出
特别的,若要分成两行写,可以使用以下方法:
System.out.println("I like"+
"Java");
连接其他数据类型
如果两边一边是字符串,另一边是整形/浮点型变量
则他们与字符串相连时,会自动转换成字符串形式后相连
如果两边都是整形/浮点型变量,则会将他们直接相加
System.out.println("I am "+9+9);
System.out.println("I am "+(9+9));
第一行输出结果是 I am 99
第二行输出结果是 I am 18
获取字符串长度 lenth()
String s = "I am good";
int l = s.length();
System.out.println(l);
输出结果为 9
字符串查找 indexOf() lastIndexOf()
(1)IndexOf(String str)
String s = "I am good";
int i = s.indexOf("a");
System.out.println(i);
输出结果为 2
String s = "I am good";
int i = s.indexOf("am ");
System.out.println(i);
输出结果为 2(待查找的字符串的第一个字符的位置)
(2)lastIndexOf(String str)
从右到左反向查找
String s = "I am good";
int i = s.indexOf("a");
System.out.println(i);
输出结果为 2
String s = "I am good";
int i = s.indexOf("am ");
System.out.println(i);
输出结果为 2(待查找的字符串的第一个字符的位置)
如果
获取子字符串 substring()
(1)substring(int beginindex)
返回从指定位置截取至字符串结尾的字符串
String s = "I am good";
String substr = s.substring(3);
System.out.println(substr);
输出结果为
m good
(2)substring(int beginIndex, int endIndex)
返回从开始位置到结束位置的字符串
String s = "I am good";
String substr = s.substring(0,3);
System.out.println(substr);
输出结果为
I am
去除空格 trim()
返回字符串的副本(忽略前导和尾部空格)
String s = " I am good ";
System.out.println(s.trim());
System.out.println(s.length());
System.out.println(s.trim().length());
输出结果为
I am good
13
9
字符串替换 replace()
将指定的字符或字符串替换成新的字符或字符串,返回替换后的字符串
//注意双引号
//严格区分大小写
String s = "I am good";
System.out.println(s.replace("a", "A"));
输出结果为
I Am good
判断字符串的开始和结尾 startsWith() endsWith()
(1)startsWith()
String s1 = "2333333";
boolean bt = s1.startsWith("23");
boolean bf = s1.startsWith("33");
String s2 = "I am good.";
boolean c1 = s2.startsWith("I");
boolean c2 = s2.startsWith("A");
System.out.println(bt);
System.out.println(bf);
System.out.println(c1);
System.out.println(c2);
输出结果是:
true
false
true
false
(2)endsWith()
String s1 = "2333333";
boolean bt = s1.endsWith("23");
boolean bf = s1.endsWith("33");
String s2 = "I am good.";
boolean c1 = s2.endsWith(".");
boolean c2 = s2.endsWith("A");
System.out.println(bt);
System.out.println(bf);
System.out.println(c1);
System.out.println(c2);
输出结果为:
false
true
true
false
判断字符串是否相等 equals() equalsIgnoreCase()
与C语言相同,字符串之间的比较不能直接用“==”
通过此符号比较得出的是两个字符串的地址是否相同
String s1 = new String("I am good.");
String s2 = new String("I am good.");
boolean b = (s1==s2);
System.out.println(b);
输出结果:
false
所以使用以下方法:
(1)equals()
String s1 = new String("I am good.");
String s2 = new String("I am good.");
boolean b = s1.equals(s2);
System.out.println(b);
输出结果:
true
(2)equalsIgnoreCase
不区分大小写
String s1 = new String("I am good.");
String s2 = new String("I Am good.");
boolean b = s1.equalsIgnoreCase(s2);
System.out.println(b);
输出结果:
true
比较两个字符串(按字典序比较Unicode值) compareTo
-前小于后 返回一个负整数
-前大于后 返回一个正整数
-相等返回零
(抽象理解为前减去后)
String s1 = new String("I am good.");
String s2 = new String("I Am good.");
int b = s1.compareTo(s2);
System.out.println(b);
输出结果为:
32
大小写转换 toLowerCase() toUpperCase()
(1)toLowerCase()
将字符串中的大写字符转换为小写字符,其他字符不做处理,返回原字符。
String s = new String("I aM good.");
String s1 = s.toLowerCase();
System.out.println(s1);
输出结果为:
i am good.
(2)toUpperCase()
将字符串中的小写字符转换为大写字符,其他字符不做处理,返回原字符。
String s = new String("I aM good.");
String s1 = s.toUpperCase();
System.out.println(s1);
输出结果为:
I AM GOOD.