String类
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());
} }