Java string类型用法总结

一、基本知识点

1、String类型 是java库中的一个预定义的类,string不是基本类型,而是一个引用类型。引用类型相当于c等语言的指针类型。

2、String类型的简单方法使用

(1)求字符串长度

String message="welcome to java";
System.out.println("The length is "+message.length());

 (2)从字符串中提取字符

按照字符串的索引序号进行提取

String message="welcome to java";
System.out.println("The char is "+message.charAt(4));

 (3)连接字符串

字符串连接可以使用concat方法,也可以使用+号完成

使用concat方法:

String message="welcome to java";
String message1=" and java is fun";
System.out.println(message.concat(message1));

 使用+号,注意使用+号时,至少一个操作数必须为字符串,非字符串会自动转换为字符串。

String message="welcome to java";
String message1=" and java is fun";
System.out.println(message+message1+666);

 注意点:String常量连接常量还是常量,依然用常量池管理;但变量连接常量就是变量。

String a="abc";
String b="a";//b是常量
String c=b+"bc";//引用b的对象,此时b是变量  ;变量连接常量,c为变量
String d="a"+"bc";//常量连接常量,d为常量
System.out.println(a==c);//输出false
System.out.println(a==d);//输出true

 

 (4)字符串的转换

大小写字母转换

String message="welcome to java";//转大写
System.out.println("Convert to uppercase "+message.toUpperCase());
String message1="WELCOME TO JAVA";//转小写
System.out.println("Convert to lowercase "+message1.toLowerCase());

(5) 从控制台读取字符串

Scanner input =new Scanner(System.in);
System.out.print("Enter words:");
String s1=input.next();
System.out.println("s1 is "+s1);

 

 (6)字符串比较

比较两个字符串的内容是否相等,用equals方法,不用==,equals方法比较对象的内容,==比较的是对象的地址是否相等。

但是注意一下区别:

1)

String a="abc";
String b="abc";
System.out.println(a==b);

输出结果:

 a,b均为常量,存放在常量池中,Java虚拟机会对常量池进行优化,由于a和b两个常量的值相同,因此他们会存放到一个空间地址中,即a和b这两个引用指向同一块内存。

2)注意:String的常量与变量的不同:

String a=new String("abc");
String b=new String("abc");
System.out.println(a==b);

输出结果:

 new 定义了a,b两个不同的比那里,在内存堆中,内存地址不同,故输出false。

(7)获得子字符串

 注意:String对象具有“内存值不可变”的特性

String a="123456789";
System.out.println(a.substring(0,5));	//输出12345
String b="123456789";
b=b.substring(0,5);//必须按照此写法,用b对象来接收截取后的结果
System.out.println(b);

 

注意String尽可能使用常量,避免使用变量。

(8)字符串和数字间的转换

将数值型字符串转换成数值型

String a="123";
int intValue=Integer.parseInt(a);

将数值型转换成字符串

int a=123;
String intValue=a+"";
System.out.println(intValue);	

二、StringBuilder和StringBuffer类

StringBuilder和StringBuffer类比String类更加灵活。StringBuilder是线程不安全的,StringBuffer是线程安全的,StringBuffer的性能低于StringBuilder。

StringBuilder是字符串变量,是可改变的对象,当他进行字符串操作时,是在一个对象上操作的,不像String一样创建额外的对象。

发布了141 篇原创文章 · 获赞 194 · 访问量 25万+

猜你喜欢

转载自blog.csdn.net/kenjianqi1647/article/details/104632988
今日推荐