Java中的String类用法详解
1.字符串拆分
可以把一个完整的字符串按照规定的分隔符拆分为若干个子字符串
String[] split(String regex)
将字符串全部拆分
String[] split(String regex,int limit)
将字符串以指定的格式拆分,拆分成limit组
实例:字符串的拆分处理
public class Main4 {
public static void main(String[] args) {
String str = "Hello world xiaoli ser";
//按照空格拆分字符串
String[] result = str.split(" ");
for(String s : result){
System.out.println(s);
}
}
}
实例:字符串的部分拆分
public class Main5 {
public static void main(String[] args) {
String str = "Hello World xiao li xiansheng";
String[] result = str.split(" ",3);
for(String s: result){
System.out.println(s);
}
}
}
".split(regex,limit)"其中的regex是分隔符的形式,limit是要拆分成几段
有一些特殊字符作为分割符无法正确拆分,需要加上转义
比如拆分ip地址
public class Main6 {
public static void main(String[] args) {
String s = "192.168.1.1";
String[] result = s.split("\\.");
for(String str : result){
System.out.println(str);
}
}
}
注意事项:
1.字符"|","*","+"都得加上转义字符,前面加上"\\"
2.而如果是"\",那么就得写成"\\\\"
3.如果一个字符串中有多个分割符,可以用"|"作为连字符.
实例:多次拆分
public class Main7 {
public void toString(String[] arr){
System.out.println(arr);
}
public static void main(String[] args) {
String str = "name=zhangsan&age=18";
String[] result = str.split("&");
for(int i = 0;i<result.length;i++){
String[] temp = result[i].split("=");
System.out.println(temp[0]+"="+temp[1]);
}
}
}
2.字符串截取
方法
String substring(int beginlndex)
从指定索引到结尾
String substring(int begindex,int endindex)
截取部分字符串
public class Main {
public static void main(String[] args) {
String str = "Hello World";
System.out.println(str.substring(6));
System.out.println(str.substring(0,4));
String s1 = str.substring(0,4);
String s2 = str.substring(6);
System.out.println(s1+s2);
}
}
注意事项:
1.字符串中得索引与数组中的下标是一样的,都是从0开始
2.substring(0,5)其中的0与5是[0,5)是前闭后开的也就是说是不包含5的
3.去掉字符串中的左右空格,保留中间的空格
public class Main2 {
public static void main(String[] args){
String str = " hello world ";
System.out.println("["+str+"]");
System.out.println("["+str.trim()+"]");
}
}
tirm()会去掉首尾的所有空白字符串(空格,换行,制表符等)
4.字符串大小写转换
public class Main3 {
public static void main(String[] args) {
String str = "HeLLo WorlD *&%$ 你好";
//把所有的大写的英文字符转成小写
System.out.println(str.toLowerCase());
//把所有的小写的英文字符转成大写
System.out.println(str.toUpperCase());
}
}
5.字符串的不可变性
String是一种不可变的对象,字符串中的内容是不可以被改变的
6.字符串修改
注意的是:尽量避免对String类型直接进行修改,因为String类是不能修改的,所有的修改都会创建新对象,效率非常低下.
public class Mainstream {
public static void main(String[] args) {
String str = "hello";
str+="world";
System.out.println(str);
}
}
public class Mainstream {
public static void main(String[] args) {
long startTime = System.currentTimeMillis();
String s = "hello";
for(int i = 0;i<10_0000;i++){
s+=i;
}
long endTime = System.currentTimeMillis();
System.out.println(endTime - startTime);
}
}
//10万次加法计算时间用了17017ms
public class Main4 {
public static void main(String[] args) {
long startTime = System.currentTimeMillis();
StringBuilder stringBuilder = new StringBuilder("hello");
for(int i = 0;i<100_0000;i++){
stringBuilder.append(i);
}
long endTime = System.currentTimeMillis();
long elapsedTime = endTime - startTime;
System.out.println(elapsedTime);
}
}
//100万次加法计算时间用了21ms
通过上述代码可以看出对String直接修改,效率是非常慢的,因此我们在修改字符串时可以选择StringBuffer或者StringBuilder
原文地址:https://blog.csdn.net/lxsxjsj/article/details/144316708
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!