String
String str = new String();//创建一个Null字符串对象;
String str = new String(“abc”);//创建一个为abc的字符串对象。
API(注意:此字符串为调用API者)
char charAt(int index);
int compareTo(Object o);
String concat(String str);将一个字符串连接到此字符串的末尾;
boolean equals(String str);
int indexOf(String str);//返回子字符串str在此字符串中第一次出现处的索引,不存在返回-1;
int length();
String substring(int beginIndex ,int endIndex);返回一个新的字符串;左闭右开,包含开始索引,不包含结尾索引;
char[] toCharArray();
boolean isEmpty();
boolean contains(CharSequence s);//CharSequence 是个接口 ,可以用来实现是否包含公共子串;
源码介绍:内部调用本身的indexOf()方法
public boolean contains(CharSequence s) {
return indexOf(s.toString()) >= 0;
}
注意:String类里的方法不会对本身进行改变
Stringbuilder
Stringbuilder 对String类可以进行操作;
void append(Object obj);
int indexOf(String str);//返回子字符串str在此字符串中第一次出现处的索引,不存在返回-1;
StringBuilder reverse();//返回的是一个新的Stringbuilder对象,为对象的反转,当然也可以再赋值给原先调用者Stringbuilder;
boolean isEmpty();
char charAt(int index);
String 数字 字符的相互转换
1、数字、字符串相互转换
// 数字转字符串 method1
int number = 5;
String str = String.valueOf(number);
System.out.println(str);
// 数字转字符串 method2
int number = 5;
Integer itr = number; //int装箱为对象,再调用对象的toString方法
String str = itr.toString(); //或者直接 String str = Integer.toString(number);
System.out.println(str);
// 数字转字符串 method3
int number = 5;
String str = number + "";
System.out.println(str);
// 字符串转数字
String str = "123";
int number = Integer.parseInt(str);//Integer.valueOf(str) 注意字符串必须由数字组成
System.out.println(number);
2.字符、字符串相互转换
//字符转字符串 method 1
char ch = '5';
String str = String.valueOf(ch);
System.out.println(str);
//字符转字符串 method 2
char ch = '5';
String str = ch + "";
System.out.println(str);
// 字符串转字符
// 其实这里也算不上转换了,只是获取对应位置上字符
String str = "123";
char ch = str.charAt(0); //这里获取到的字符为1
System.out.println(ch);
3.数字、字符相互转换
// 数字转字符
// 不能直接转换,如下图。因此需借助数字转字符串。
// 首先将数字转为字符串,再获取字符
int number = 5; //注意这里数字只能是个位数并且不能为负
String temp = Integer.toString(number);
char ch = temp.charAt(0);
System.out.println("数字转字符:"+ch);
// 字符转数字
// 先把字符转为字符串,再转换为数字
char ch = '5';
String temp = String.valueOf(ch);
int a = Integer.parseInt(temp);
System.out.println(a);
//或者
int a = ch - '0';
4.字符数组转字符串
String newStr = new String(charArray, 0, charArray.length);
//或者 new String(charArray);
String s = "123";
s.substring(2);
这个并不会对s进行改变
如果是复制给s,
s = s.substring(2);这个只是新建了一个对象s.substring()是一个新的对象,这个对象会存在内存块里,只不过s此时会指向这个内存块,不再指向123这个对象了。
StringBuilder sb = new StringBuilder(s);
sb.substring(1);也是同一个意思
但Stringbuilder()里的reverse()会对字符串进行翻转可以改变值,String里没有这个方法
sb.reverse();这时sb已经改变了,不用再赋值给sb了 。
<----------------------------->
String s = "123";
StringBuilder sb = new StringBuilder(s);
s = sb.substring(1);
sb.reverse();
System.out.println(s);
System.out.println(sb.toString());
这个赋值给s了,sb里照样翻转
输出 23
321