栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java中字符串相关内容及其常用方法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java中字符串相关内容及其常用方法

一、与字符串相关的三个类

与字符串相关的三个类:String、StringBuffer、StringBuilder

1.1 三者特点详解

String:

StringBuffer: 可变的字符序列,线程安全的,效率低
StringBuilder: 可变的字符序列,线程不安全的,效率高

1.2 三者的转换

String转换为StringBuffer、StringBuilder: 调用StringBuffer、StringBuilder的构造器

StringBuffer、StringBuilder转换为String: 调用String的构造器或调用StringBuffer、StringBuilder的toString方法

二、String的替换、匹配、切片方法

替换:replace(oldChar,newChar)
匹配:match
切片:split

 	
String string = "StringTest";
String replaceString = string.replace("T", "t");
System.out.println(replaceString);

String newString = "12hello34world5java7891mysql456";
String stringReplaceall = newString.replaceAll("\d+", ",");
String stringReplaceall1 = newString.replaceAll("\d+", ",").replaceAll("^,|,$", "");
System.out.println(stringReplaceall);
System.out.println(stringReplaceall1);
//结果
StringTest
Stringtest
,hello,world,java,mysql,
hello,world,java,mysql
 
String stringMatch = "12345";
boolean isDigital = stringMatch.matches("\d+");//判断是不是全部是数字--true
System.out.println(isDigital);//true
String stringMatch1 = "0571-12345678";
System.out.println(stringMatch1.matches("0571-\d{7,8}"));
stringMatch1 = "0571-123456780";
System.out.println(stringMatch1.matches("0571-\d{7,8}"));
stringMatch1 = "0571-1234567d";
System.out.println(stringMatch1.matches("0571-\d{7,8}"));
//结果
true
true
false
false
String string = "hello|world|java";
String[] strings = string.split("\|");
for (int i = 0; i < strings.length; i++) {
    System.out.println(strings[i]);
}
//结果
hello
world
java
//结果
false
true
false
true
2
-1
三、String其他常用方法
String string = " HelloWorld ";
String string1 = " helloworld ";
System.out.println(string.isEmpty());//判空
System.out.println(string.endsWith("ld"));//以“ld”开头
System.out.println(string.startsWith("he"));//以“he”结尾
System.out.println(string.startsWith("lo", 3));//从第3个索引开始,以“lo”开头
System.out.println(string.indexOf("l"));//l第一次出现的位置
System.out.println(string.indexOf("lo", 4));//从索引4开始,第一次出现的位置
System.out.println(string.charAt(2));//返回索引=2的字符
System.out.println(string.toLowerCase());//所有字符转换为小写
System.out.println(string.toUpperCase());//所有字符转换为大写
System.out.println(string.trim());//返回字符串的副本,去掉开头结尾的空格
System.out.println(string.trim());//返回字符串的副本,去掉开头结尾的空格
System.out.println(string.equals(string1));//返回字符串内容是否相等,不忽略大小写
System.out.println(string.equalsIgnoreCase(string1));//返回字符串内容是否相等,忽略大小写
System.out.println(string.concat("String"));//将字符串添加至此字符串的结尾,等价于+
System.out.println(string.compareTo(string1));//比较两个字符串的大小
四、StringBuffer的常用方法
 
StringBuffer stringBuffer = new StringBuffer("abcdefghijklmnopqrstuvwxyz");
stringBuffer.append("张");
System.out.println(stringBuffer);
stringBuffer.delete(5,9);
System.out.println(stringBuffer);
stringBuffer.setCharAt(10,'京');
System.out.println(stringBuffer);
stringBuffer.replace(12,16,"京东物流");
System.out.println(stringBuffer);
stringBuffer.insert(1,"zh");
System.out.println(stringBuffer);
System.out.println(stringBuffer.length());
System.out.println(stringBuffer.reverse());
五、部分算法

5.1 获取一个字符串在另一个字符串中出现的次数

String string1 = "abcdedfffdcdddfddfdsadcddfacdfdfjkdfjk";
String subString = "cd";
int count = 0;
int index = string1.indexOf(subString);
while (index != -1) {
   count ++;
   index = index + subString.length();
   index = string1.indexOf(subString,index);
}
System.out.println(count);

5.2 获取两个字符串最大相同子串

String string1 = "abcwerthelloyuiodef";
String string2 = "abc";
String maxString = (string1.length() > string2.length()) ? string1 : string2;//两个字符串中较长的串
String minString = (string1.length() > string2.length()) ? string2 : string1;//两个字符串中较短的串

for (int i = 0; i < minString.length(); i++) {
    for (int j = 0, k = minString.length() - i; k != minString.length() + 1; j++, k++) {
        String temp = minString.substring(j, k);
        if (maxString.contains(temp)) {
            System.out.println(temp);
        }
    }
}

5.3 字符串排序

String stringUnSort = "jshfkjshfkshfjkshfjdshk";
//first:make string to char[] 将字符串转换为字符数组
char[] chars = stringUnSort.toCharArray();
//对字符数组进行排序
//方法一:调用Arrays.sort()方法
Arrays.sort(chars);
System.out.println(chars);
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/691329.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号