String
字符串是不变对象,意思是说,字符串内容一旦创建不可改变, 若想改变某个字符串内容一定会创建新对象。
int length()
获取字符串长度
无论是中文还是英文每个字符都是一个长度
int indexOf(String str)
该方法是用来查找给定字符串在当前字符串中的位置。
该方法有几个重载方法。
eg:
String str = "thinking in java";
//查找in在str字符串中的位置,若没有会返回-1。
int index = str.indexOf("in");
System.out.println("index:"+index);
/*
* 重载方法允许从指定位置处开始查找。
*/
index = str.indexOf("in", 3);
System.out.println("index:"+index);
/*
* 查找最后一次出现指定字符串的位置。
*/
index = str.lastIndexOf("in");
System.out.println("index:"+index);
String substring(int start,int end)
截取字符串,从指定位置(start)开始截取到指定的位置(end)
java API有一个特点,通常用两个数字表示范围时,都是含头不含尾的。
若只传入一个参数,这是从指定位置开始截取到字符串末尾。
String trim()
去除当前字符串两边的空白字符
char charAt(int index)
获取当前字符串指定下标对应的字符
boolean startsWith(String str)/boolean endsWith(String str)
判断当前字符串是否是以指定的字符串开头或结尾的。
String toUpperCase()/String toLowerCase()
将当前字符串的英文转换为全大写或全小写
static String valueOf(XXX xxx)
该方法的作用是将java中其他类型转换为字符串。
eg:
int a = 1;
String strA = String.valueOf(a)+1;
System.out.println(strA);
结果:11
double d = 1.1;
String strB = String.valueOf(d)+1;
System.out.println(strB);
结果:1.11
StringBuilder
StringBuilder为字符串变量
StringBuiler提供了用于修改字符串内容的相关方法:
其内部维护的是一个可变的字符数组,所以修改都是在当前对象内部完成的。
当频繁修改字符串内容时应当使用当前类来完成
eg:
将String转换为StringBuilder可以使用有参的构造方法。StringBuilder也有无参构造方法,默认表示空字符串
String str = "努力学习java";
StringBuffer builder = new StringBuffer(str);
从StringBuilder转换为String使用StringBuilder的toString方法即可。
str = builder.toString();
StringBuilder append(String str)
像当前字符串末尾追加指定内容。
有若干重载方法,参数类型不同,这些重载方法允许追加其他内容(先转换为字符串再追加)
builder.append(",为了找个好工作!");
System.out.println(builder.toString());
结果:努力学习java,为了找个好工作!
StringBuilder replace(int start,int end,String str)
将指定范围内的字符串替换为指定的内容
eg:
/*
*努力学习java,为了找个好工作
* 改为:
* 努力学习java,就是为了改变世界
*/
builder.replace(9, 16, "就是为了改变世界");
System.out.println(builder.toString());
结果:努力学习java,就是为了改变世界!
StringBuilder delete(int start,int end)
将当前字符串中指定范围内的内容删除。
eg:
/*
* 努力学习java,就是为了改变世界
* 改为:
* 就是为了改变世界
* /
builder.delete(0, 9);
System.out.println(builder.toString());
结果:就是为了改变世界!
StringBuilder insert(int index,String str)
将指定字符串插入到指定位置,原位置及后续字符串顺序向后移动。
eg:
/*
* 就是为了改变世界!
* 改为
* 活着,就是为了改变世界!
*/
builder.insert(0, "活着,");
System.out.println(builder.toString());
结果:活着,就是为了改变世界!
反转字符串
eg:
builder.reverse();
System.out.println(builder.toString());
结果:!界世变改了为是就,着活