字符串
· 用双引号括起来的0个或多个字符就是一个字符串字面量
列: "hello"
字符串变量
· String s;
· String是一个类,String的变量是对象的管理者而非所有者
· 就像数组变量是数组的管理者而非所有者一样
new = 创建
String s =new String("a string");
1.创建了一个String的对象
2.用"a string"初始化这个对象
3.创建管理这个对象的变量s
4.让s管理这个对象
初始化字符串变量
· String s= "hello";
· 编译器帮你创建一个String类的对象交给s来管理
字符串连接
· 用加号(+)可以连接两个字符串
· “hello”+"world"->"helloworld"
· 当这个+的一边是字符串而另一边不是时,会将另一边表达为字符串然后做连接
输入字符串
~in.next();读入一个单词,单词的标志是空格
~空格包括空格,tab和换行
~in.nextLine();读入一整行
对象变量的赋值
比较两个String
~比较是否同一个
~比较内容是否相同
String应该用.equals来比较
字符串操作
~字符串是对象,对它的所有操作都是通过"."这个运算符来操作的
~字符串.操作
~它表示对.左边的这个字符串做右边的那个操作
~这个的字符穿可以是变量也可以是常量
Strings大小的比较
~两个字符串可以比较大小:
s1.compareTo(s2)
~如果s1比s2小,那么结果是负的;如果s1和s2相等,那么结果是0;如果s1比s2大,那么结果是正的
.compareToIgnoreCase可以不区分大小写地来比较大小
获得String的长度
~用length()函数
访问String里的字符
~s.charAt(index)
~返回在index上的单个字符
~index的范围是0到length()-1
~第一个字符的index是0,和数组一样
~但是不能用for-each循环来遍历字符串
得到子串
~s.substring(n)
~得到从n号位置到末尾的全部内容
~s.substring(b,e)
~得到从b号位置到e号位置之前的内容
寻找字符
其他String操作
不可变的String
~所有的字符串都是不可变的,对它们的操作的结果都是制造新的字符串出来
String s ="abc";
System.out.println(s.toUpperCase());
System.out.println(s);