java的字符类型String类进阶理解
程序员文章站
2023-04-03 16:40:18
String类位于java.lang包下,是Java语言的核心类,提供了字符串的比较、查找、截取、大小写转换等操作;String类被final关键字修饰,意味着String类不能被继承,并且它的成员方法都默认为final方法;字符串一旦创建就不能再修改。Java语言为“+”连接符(字符串连接符)以及对象转换为字符串提供了特殊的支持,字符串对象可以使用“+”连接其他对象。//示例:对象转字符串public class StringSpeechUser {//定义两个变量a,bprivate i...
String类位于java.lang包下,是Java语言的核心类,提供了字符串的比较、查找、截取、大小写转换等操作;
String类被final关键字修饰,意味着String类不能被继承,并且它的成员方法都默认为final方法;字符串一旦创建就不能再修改。
Java语言为“+”连接符(字符串连接符)以及对象转换为字符串提供了特殊的支持,字符串对象可以使用“+”连接其他对象。
//示例:对象转字符串 public class StringSpeechUser { //定义两个变量a,b private int a; private int b; public int getA() { return a; } public void setA(int a) { this.a = a; } public int getB() { return b; } public void setB(int b) { this.b = b; } /* @Override
public String toString() { return "StringSpeechUser [a=" + a +
", b=" + b + "]"; }
*/ } public static void main(String args[]){ StringSpeechUser a = new StringSpeechUser(); a.setA(5); a.setB(7); System.out.println("a.a:"+a.getA()); System.out.println("a.b:"+a.getB()); System.out.println(a); } /* a.a:5
a.b:7
stringspeechbeans.StringSpeechUser@659e0bfd
*/ /*可以看到,本来我是想输出a和b的值,但是结果的第三行却不是我们想要的结果。为什么呢?
object中有一个toString()的方法,我们需要重写这个方法才能按照我们自己的意愿输出,将上面的程序稍作修改,即添加改写toString函数的代码;
添加后:
a.a:5
a.b:7
StringSpeechUser [a=5, b=7];
*/
toString() 将类的信息以字符串的形式表示出来.
通常开发者会输入对象,为了能够更加快速清晰的知道该对象中的属性的值分别都是什么,此时就会重写该类的toString 方法.
直白点说:toString方法是系统提供的一种输出格式.
@Override public String toString() { return "User [uid=" + uid + ", username=" + username + ", password=" + password + "]"; } User user = new User(); System.out.println(user); //toString方法时默认自动调用的,其实真正的写法是:user.toString()
创建一个空的字符串对象,调用其toString方法后为什么输出的不是一串地址?
String类重写了toString方法,返回的是当前的字符串,创建空对象时并没有给字符串.
Object obj = new String(); System.out.println(obj); String str = new String(); System.out.println(str.toString()); //String 源码 /*public String toString() {
return this;
}*/
字符串和数字之间的类型转换:
数字转换为字符串:
1. valueOf() String numStr = String.valueOf(123); 2. 拼接 String numStr = 123 + "";
字符串对象创建问题:
public static void main(String[] args) { String name = "abc";//要记得java里面万物皆对象 String str = new String("a");//创建了两个对象 String str1 = "hello"; String str2 = "world"; String str3 = "helloworld"; String str4 = str1+str2; System.out.println(str3 == str4);//fauls System.out.println(str3.equals(str4));//true String str5 = "a"+"b"+"c"; String str6 = "abc"; System.out.println(str5==str6);//true } /*
==对于基本数据类型比较的是值,对于引用数据类型比较的是地址
equals比较的是地址,在字符串中是先比较地址再比较值
*/
本文地址:https://blog.csdn.net/qq_44644976/article/details/107661901
推荐阅读
-
java的字符类型String类进阶理解
-
Java中将String类型依照某个字符分割成数组的方法
-
Java String:重要到别人只能当老二的字符串类
-
java String 类的一些理解 关于==、equals、null
-
深入理解java.lang.String类的不可变性
-
String常用使用方法,1.创建string的常用3+1种方式,2.引用类型使用==比较地址值,3.String当中获取相关的常用方法,4.字符串的截取方法,5.String转换常用方法,6.切割字符串----java
-
关于Java中String类字符串的解析
-
java常用类的使用、String类、StringBuffer类、正则表达式、基本数据类型的包装类、Object类、Math类
-
java字符串类String类中的使用方法
-
包装类与String以及基本数据类型之间的类型互转(小白理解,小白编写,欢迎大神指点,小白跪谢)