欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > java字符串

java字符串

2025/3/15 4:08:55 来源:https://blog.csdn.net/2402_87239469/article/details/146107360  浏览:    关键词:java字符串

字符串构造

1.使用常量串构造

 String h1 = "hello";System.out.println(h1);

2.new对象

  String h2 = new String("hello");System.out.println(h2);

3.使用字符数组构造

  char[] array = {'h','e','l','l','o'};String h3 = new String(array);System.out.println(h3);

我们发现Sting类被final修饰并且不能继承,并且返现变量value被private修饰这表明,修改字符串并不能实现,而String是引用类型,表面上的修改字符串实际只是修改引用对象,真正不能修改的是String类。 

 String对象的比较

1.==比较

对于内置类型一般比较变量中的值,如果是引用类型则比较的是地址。

2.equals方法

public boolean equals(Object anObject) {if (this == anObject) {return true;}
//1.首先比较两者是否为同一个对象if (anObject instanceof String){  //2.比较参数是否为Sting的子类String anotherString = (String)anObject;int n = value.length;
//3.比较两者长度大小if (n == anotherString.value.length) {char v1[] = value;char v2[] = anotherString.value;int i = 0;
//4.根据asm来比较首个不同字符的大小while (n-- != 0) {if (v1[i] != v2[i])return false;i++;}return true;}}return false;}

我们发现Sting类重写了父类的equal方法 

​​ String s6 = new String("Hello");String s7 = new String("world");String s8 = new String("Hello");String s9 = s6;System.out.println(s6==s7);System.out.println(s7==s8);System.out.println(s6==s9);System.out.println(s6.equals(s8));System.out.println(s6.equals(s7));

在equals中我们发现s6和s8返回true,我们发现两者的防止内容相同但对象却不同。

而s7和s6却是对象不同,内容也不同,返回false。

3.comparetoignorecase方法

我们通过控制台发现该方法返回值是整数,我们回到方法代码

该方法忽略大小写存在,大小写不受影响。

4.compareto方法

我们发现与上个方法输出值不同,该方法因为不忽略大小写的区别所以根据长度和asm表大小比较并返回差值,回到方法内部。

我们发现只返回不同的首字符差值,如果完全相同则返回大小差值。

字符串查找

 String s6 = new String("Hello");String s7 = new String("world");String s8 = new String("Hello");

1.charAt方法

该方法是返回改位置对应的字符。

2.indexOf方法

该方法返回该字符第一次出现的位置

3.lastIndex方法

该方法从后往前查找并返回该字符第一次出现的位置。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词