String中有常量池,用于存放直接创建出来的对象(不new);
String s1="abc123";
String s2="abc123";//放在常量池中,栈中地址与s1相同
String s3=new String("abc123");
System.out.println(s1==s2);//地址相同true
System.out.println(s1==s3);
编译器会在编译时将abc+123计算成“abc123”,所以在.class文
件中s4的值为“abc123”,所以s1等于s4
String s1="abc123"; String s2="abc123"; String s4="abc"+"123"; System.out.println(s1==s4);//true
int indexOf(String str)
* -查找指定字符串在当前字符串的位置
* -有多个重载的方法
package day01;
/**
* int indexOf(String str)
* -查找指定字符串在当前字符串的位置
* -有多个重载的方法
* @author ajia
*
*/
public class StringAPIDemo02 {
public static void main(String[] args) {
String str2="thinking in java";
int index=str2.indexOf("in");
System.out.println(index);//显示的位置下标为查找字符串的的首字母位置
//如果没有找到则返回-1
/**
* 重载方法:允许从指定位置开始查找
*
*/
index=str2.indexOf("in",3);//第一个参数为查找的字母,第二个为从指定位置的下标
System.out.println(index);
/**
* 查找最后出现的指定字符串的位置
*
*/
index=str2.lastIndexOf("in");
System.out.println(index);
String substring(int start,int end)
* -截取字符串,从start开始截取到end
package day01;
/**
* String substring(int start,int end)
* -截取字符串,从start开始截取到end
* Java api 中有一个特点:通常两个数字表示一个范围是,含头不含尾
*
*
* @author ajia
*
*/
public class StringAPIDemo03 {
public static void main(String[] args) {
// 0123456789012345
String str="thinking in java";
//截取“ing”
String sub=str.substring(5,8);//含头不含尾
System.out.println(sub);
//截取“java”
/**
* 若只传入一个参数,则从指定位置开始截取字符串到末尾
*/
str=str.substring(12,16);
System.out.println(str);
}
}
} }
/**
* boolean startWith(String str)
* boolean endWith(String str)
* -判断当前字符串是否以指定的字符串开头或者结尾
*/
package day01;
/**
* boolean startWith(String str)
* boolean endWith(String str)
* -判断当前字符串是否以指定的字符串开头或者结尾
*/
public class StringAPIDemo06 {
public static void main(String[] args) {
String str="thinking in java";
boolean start=str.startsWith("th");
System.out.println(start);
boolean end=str.endsWith("java");
System.out.println(end);
}
}
String toUpperCase()
* String toLowerCase()
* - 将当前字符串的英文转换成大写/小写
package day01;
/**
* String toUpperCase()
* String toLowerCase()
* - 将当前字符串的英文转换成大写/小写
*
* @author ajia
*
*/
public class StringAPIDemo07 {
public static void main(String[] args) {
String str="java爱我";
String upper=str.toUpperCase();
System.out.println(upper);
String lower=str.toLowerCase();
System.out.println(lower);
}
}
static String value(XXX xxx)
* -将其他基本类型转换成String类型
package day01;
/**
* String为我们提供一些静态方法
* static String value(XXX xxx)
* -将其他基本类型转换成String类型
* @author ajia
*
*/
public class StringAPIDemo08 {
public static void main(String[] args) {
int a=10;
String strA=String.valueOf(a);
System.out.println(strA+1);
double b=3.14;
String strB=String.valueOf(b);
System.out.println(strB+15);
/* * replace (int start,int end, String str) * - 将指定范围内的字符串替换为指定内容 */ su.replace(15,20,"个好媳妇"); System.out.println(su.toString()); /* * StringBuilder delete(int start, int end) * -删除指定范围内的字符串 * 努力学习java,为了找一个好媳妇 */ su.delete(4, 9); System.out.println(su.toString()); /* * StringBuilder insert(int index, String str) * -在指定位置插入一个字符串 * */ su.insert(0, "活着"); System.out.println(su.toString());
} }