Java之字符串的初步认识

在JAVA语言中,字符串数据实际上由String类所实现的。
Java字符串类分为以下三类:
String 字符串常量
StringBuffer 字符串变量(线程安全)
StringBuilder 字符串变量(非线程安全)
1】String:是不可改变的量,也就是创建后就不能在修改了。
2】StringBuffer:是一个可变字符串序列,它与 String 一样,在内存中保存的都是一个有序的字符串序列(char 类型的数组),不同点是 StringBuffer 对象的值都是可变的。
3】StringBuilder:与 StringBuffer 类基本相同,都是可变字符换字符串序列,不同点是 StringBuffer 是线程安全的,StringBuilder 是线程不安全的。

判断字符串是否相等:
1)

String str1=”hello”;
String str2=”hello”;  //返回值为true,因为指向的是同一个地址
// str1 == str2;

2)

String str1=new String(”hello”);
String str2=new String(”hello”);  //false
// str1 == str2;
System.out.println(str1.equals(str2));

如果两个字符串具有相同的字符和长度,则使用equals()方法比较时,返回true。同时equals()方法比较时区分大小写。

3)

String str1=new String("hello").intern();//查一下intern是什么意思
String str2="hello";  //false
// str1 == str2;
System.out.println(str1 == str2);

intern() 方法为返回字符串对象的规范化表示形式。
它遵循以下规则:对于任意两个字符串 s 和 t,当且仅当 s.equals(t) 为 true 时,s.intern() == t.intern() 才为 true。

字符串的替换:
replace()方法可实现将指定的字符或字符串替换成新的字符或字符串
oldChar:要替换的字符或字符串
newChar:用于替换原来字符串的内容
如果要替换的字符oldChar在字符串中重复出现多次,replace()方法会将所有oldChar全部替换成newChar。需要注意的是,要替换的字符oldChar的大小写要与原字符串中字符的大小写保持一致。

示例: String str= "address";
 String newstr = str.replace("a", "A");// newstr的值为Address

字符串的拼接:

1)“+”方法(String  +)
    String str="helloworld";
    String str1="hello"+"world";//会直接优化为helloworld,所以和str的地址一样
    System.out.println(str == str1);//返回值为true
2)concat() 连接连个字符串,与+ 运算符执行相同功能。
String concat(String str)

大小写的转换:
字符串中的toLowerCase()方法可将字符串中的所有字符从大写字母改写为小写字母,而tuUpperCase()方法可将字符串中的小写字母改写为大写字母。

str.toLowerCase();
str.toUpperCase();

删除空格:

  1. String.trim()
    trim()是去掉首尾空格
    2.str.replace(" “, “”); 去掉所有空格,包括首尾、中间
    复制代码 代码如下:String str = " hell o “;
    String str2 = str.replaceAll(” “, “”);
    System.out.println(str2);
    3.或者replaceAll(” +”,""); 去掉所有空格
    4.str = .replaceAll("\s*", “”);
    可以替换大部分空白字符, 不限于空格
    其中:\s 可以匹配空格、制表符、换页符等空白字符的其中任意一个

字符串的截取:
1)split()+正则表达式来进行截取。
将正则传入split()。此时,返回的是一个字符串数组类型。但是,通过这种方式截取会有很大的性能损耗,因为分析正则非常耗时。

2)通过subString()方法来进行字符串截取。
subString可通过不同的参数来提供不同的截取方式

例如:String str= "asdadfdasda";
sb.substring(2, 4);
输出结果为:sa
//其中(2,4)为索引值

3)通过StringUtils提供的方法

1】StringUtils.substringBefore(“asddaedwfwf”, “d”); 
输出结果为:as
这里是以第一个”d”,为标准。
2】StringUtils.substringBeforeLast(“asadasdasdas”, “a”) 
输出结果为:asadasdasd
这里以最后一个“e”为准。``

猜你喜欢

转载自blog.csdn.net/Snowing1234_5/article/details/83280427