String中有且不常用的方法
今天我们说些String 中不太常用的方法;
String中有且不常用的方法
*/
public static void method() {
String str = "hi juni";
System.out.println("指定索引处的char值:"+str.charAt(1));
System.out.println("指定char值对相应的索引:"+str.indexOf('i'));//从前往后
System.out.println("指定char值对相应的索引:"+str.lastIndexOf('i'));
String compare1 = "adc";
String compare2 = "aac";
//compareTo 判断谁的char数大,
System.out.println(compare1.compareTo(compare2));
//concat()将字符串拼接
System.out.println(compare2.concat(compare1));
System.out.println("是否包含指定的字符串:"+str.contains("hello"));//返回值为boolean类型
String url = "https:\\baidu.com";
System.out.println(url.endsWith("cn"));
}
String中的equals与==号的区别
equals与==号同样是返回布尔值,但是他们比较的并不相同。
=号用于基本数据类型时比较的是值,引用数据类型时比较的是地址
equals方法对于没有重写的引用数据类型而言比较的是地址,对于重写后的比较的是里边的字符是否相同。
//String中的equals与==号的区别
public class Equals {
public static void main(String[] args) {
String test = new String("a,b,c");//通过new创建对象在堆中
String test1 = new String("a,b,c");
String test2 = test;
test2 = "s,e,q";
System.out.println(test.equals(test1));//true
System.out.println(test.equals(test2));//false
System.out.println(test == test1);//false
}
}
String中的常量池
字符串常量都在常量池(方法区)中存储,是有自己的地址的,通过new关键字创建出来的对象在堆内存中加载。
常量池:如果要指定某一个常量进行使用,首先会去常量池中查看该常量是否已存在,如果已存在直接拿来用,如果不存在就创建一个放进常量池中String str6 = "hello"; String str7 = "world"; String str8 = str6 + str7;//对已经创建好的对象进行拼接 String str9 = "helloworld"; System.out.println(str8 == str9);//flase System.out.println(str8.equals(str9));//true