- String
- 字符串类型,注意首字母的大写S,因为String包装在类中,而JAVA默认类名首字母大写,方法名首字母小写,之后再使用驼峰法
- 若有String str = "abcdjkl",注意不同于C++,不能使用str[i]访问单个字符,可以使用char ch = str.charAt(index)获取单个字符,其中index是下标
- 若只声明了字符串变量,如String str,则此时str为null,注意这与str==""不同
- 不同于C++,JAVA中字符串和数组变量只是其管理者,即若有String s1 = "123"; String s2 = s1. 此时并不是进行了字符串拷贝工作,而是此时s1和s2均指向字符串"123"
- 拼接操作“+”或“+=”类似C++,但是String也可拼接其它类型数据变为字符串,这一点在System.out.println()中有所体现
- JAVA的String是不可变字符串,可以改变字符串变量指向,但内容一经定义则无法改变,其拼接操作也是新申请空间,存储,再改变指向
目前用得到的方法总结:若有String s = "abcdejkl",调用方法是使用“.”,即 s.method()
1. char charAt(int index),获取字符串中单个字符,index是下标(或称为索引)
2. int length(),返回字符串长度
3. int compareTo(String other),字符串比较,类似于C中strcmp()的用法
4. boolean equals(String other),判断字符串是否相等;若忽略大小写,则使用boolean equalsIgnoreCase(String other)
5. boolean startsWith(String str) && boolean endsWith(String str),判断是否以字符串str开头或结尾
6. int indexOf(String/Char str, int start = 0),从下标start处开始向后,查找字符串中是否存在字符或字符串str,存在则返回第一次出现的下标,否则返回-1
7. int lastIndexOf(String/Char str, int start = s.length()-1),从下标start处开始向前,查找字符串中是否存在字符或字符串str,存在则返回第一次出现的下标,否则返回-1
8. String substring(int begin, int end = s.length()),截取下标[begin, end)部分的字符串,容易计算截取字符串的长度为 end-start
9. String toLowerCase() && String toUpperCase(),返回全小写/大写的字符串
---------------------------------------------------------------------------------------------------------------------------
public class Main { public static void main(String[] args) { String s = "abcdejkl"; for(int i = 0; i < s.length(); ++i) System.out.print(s.charAt(i)); String str = "Qwerjkl"; System.out.println(); if(s.equals(str)) System.out.println("It cann't be..."); if(s.equals("abcdejkl")) System.out.println("That's right..."); if(s.startsWith("abc")) System.out.println("OK!"); if(str.endsWith("hjkl")) System.out.println("NO!"); System.out.println(str.indexOf('d')); System.out.println(str.indexOf("er", 3)); System.out.println(s.lastIndexOf("rj")); System.out.println('z'); System.out.println(s.toUpperCase()); System.out.println(str.toLowerCase()); } }