JAVA中String类相关

 1.常见方法

1.1.String的构造

String类提供的构造方法很多,常见的有以下三种。

//使用常量字符串构造
String s1 = "hello world";
//使用new String()构造
String s2 = new String("hello world");
//使用字符串数组构造
char[] array = {'h', 'e', 'l', 'l', 'o'};
String s3 = new String(array);

需要注意的是String是引用类型,内部并不储存字符串本身,而是储存字符串的地址。

1.2.String的比较 

以下介绍四种比较的方法。

1.2.1.==

在引用类型中,使用==可以比较两个该类型变量引用的是否是同一个对象。

String s1 = "hello";
String s2 = "hello";
String s3 = s1;
System.out.println(s1 == s2);//false
System.out.println(s1 == s3);//true

1.2.2.equals

使用.equals可以根据字典序来比较字符串,会返回true或false.

String s1 = "hello";
String s2 = "hello";
String s3 = "world";
System.out.println(s1.equals(s2));//true
System.out.println(s1.equals(s3));//false

1.2.3.compareTo

比较时也是根据字典序进行比较,当遇到不同字符时,返回不同字符之间的差值。当两个字符串长度不同时,如果长度小的字符串比较完之后每个字符相同,则会返回这两个字符串长度的差值。当相同时,返回0;

String s1 = "abc";
String s2 = "adc";
String s3 = "abc";
String s4 = "ab";
System.out.println(s1.compareTo(s2));//2
System.out.println(s1.compareTo(s3));//0
System.out.println(s1.compareTo(s4));//1

1.2.4.compareToIgnoreCase

比较方式与compareTo相同,但是忽略大小写。

1.3.String的查找 

char charAt(int index) 返回index位置上的字符,若index为负数或越界,则抛出异常。

int indexOf(char ch) 返回ch第一次出现的位置,没有则返回-1.

int indexOf(char ch, int fromIndex) 从fromIndex位置开始找ch第一次出现的位置,没有则返回-1.

int intdexOf(String str) 返回str第一次出现的位置,没有则返回-1.

int indexOf(String str, int fromIndex) 从fromIndex位置开始找str第一次出现的位置,没有则返回-1.

int  lastIndexOf(char ch) 从后往前找,返回ch第一次出现的位置,没有则返回-1。

int lastIndexOf(char ch, int fromIndex) 从后往前找,从fromIndex位置开始找ch第一次出现的位置,没有则返回-1.

int lastIndexOf(String str) 从后往前找,返回第一次出现str的位置,没有则返回-1。

int lastIndexOf(String str,  int fromIndex) 从后往前找,从fromIndex位置开始找str第一次出现的位置,没有则返回-1,  

1.4.转化

1.4.1.数值与字符串

//数值转字符串
String s1 = String.valueOf(1234);
String s2 = String.valueOf(12.34);
//字符串转数值
int n1 = Integer.parseInt("1234");
double n2 = Double.parseDouble("12.34")

1.4.2. 大小写转化

String s1 = "hello";
String s2 = "HELLO";
System.out.println(s1.toUpperCase());//转大写
System.out.println(s2.toLowerCase());//转小写

1.4.3.字符数组与字符串 

String s1 = "hello";
//字符串转字符数组
char[] ch = s1.toCharArray();
//字符数组转字符串
String s2 = new String(ch);

1.5.字符串替换 

使用一个新的字符串数据替换已有的字符串数据,两种方法如下。

String replaceAll(String regex, String replacement) 替换所有指定内容

String replaceFirst(String regex, String replacement) 替换首个指定内容

1.6.字符串拆分 

String[] split(String regex) 将字符串全部拆分。

String[] split(String regex, int limit) 将字符串以指定的格式,拆分为limit组。 

注意事项:

1.字符"|","*","+"都得加上转义字符,前面加上"\\"。

2.如果是"\",则要写成"\\\"。

3.如果一个字符串有多个分隔符,可以用"|"作为连字符。 

1.7.字符串的截取

String substring(int beginIndex) 从指定索引截取到结尾。

String substring(int beginIndex, int endIndex) 截取部分内容。

注意事项:

1.索引从0开始。

2.注意前闭后开区间的写法,substring(0, 5)表示包含0号下标,不包含5号下标。 

2.StringBuffer和StringBuilder 

由于String类是不可修改的,当我们想要修改时,编译器会创建很多个String类,导致效率下降很多,此时我们就可以使用StringBuilder。StringBuilder大部分方法与String相同,下面介绍两种不同的方法。

StringBuffer append(String str) 在尾部追加字符串。

String toString() 将StringBuffer类转化为String类。 

注意事项:

1.String变为StringBuilder类:利用StringBuilder的构造方法或append()方法。

2.StringBuilder类变为String类:调用toString()方法。

String, StringBuffer, StringBuilder的区别 

1.String的内容不可修改,StringBuffer与StringBuilder的内容可以修改。

2.StringBuffer与StringBuilder大部分功能相似的。

3.StringBuffer采用同步处理,属于线程安全操作;而StringBuilder未采用同步处理,属于线程不安全操作。 

 

 

  

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值