关于字符串的分割问题
1、如何快速的将一个字符串分割成一个个字符?
Scanner sc=new Scanner(System.in); System.out.println("请输入一个字符串:"); String str=sc.next(); System.out.println("输入的字符串的长度为:"+str.length()); char [] a=str.toCharArray(); for (int i = 0; i < a.length; i++) { System.out.print(a[i]+"\t"); }
2、接上面将字符串转为字节数组
System.out.println(); //将字符串转为字节数组 byte[] b=str.getBytes(); for (int i = 0; i < b.length; i++) { System.out.print(b[i]+"\t"); }
3、按照指定字符串对当前字符串进行拆分
System.out.println(); //按照指定字符串对当前字符串进行拆分 String ss="床前明月光,疑是地上霜,举头望明月,低头思故乡"; //按照,号拆分字符串为字符串数组 String[] strs=ss.split(","); System.out.println("strs的数组长度为:"+strs.length); for (int i = 0; i < strs.length; i++) { System.out.println(strs[i]); }
4、获取指定字符串的指定字符的index,及获取指定字符串的指定字符的最后出现的index;
//获取当前字符串中指定字符或字符串的位置 //获取hello中e的索引位置 System.out.println("hello中e的索引位置为:"+("hello").indexOf("e")); //获取当前字符串中指定字符或字符串最后一次出现的索引位置 //获取hello中l的最后一次出现的索引位置 System.out.println("hello中l的最后的索引位置为:"+("hello").lastIndexOf("l"));
5、指定分割几个字符串;
// 最多分割出3个字符串 int maxSplit = 3; sourceStrArray = sourceStr.split(",", maxSplit); for (int i = 0; i < sourceStrArray.length; i++) { System.out.println(sourceStrArray[i]);
}
6、split 的实现直接调用的 matcher 类的 split 的方法。在使用String.split方法分隔字符串时,分隔符如果用到一些特殊字符,可能会得不到我们预期的结果。在正则表达式中有特殊的含义的字符,我们使用的时候必须进行转义,示例:
(1)、字符"|","*","+"都得加上转义字符,前面加上"\\"。
String value = "192.168.128.33"; // 注意要加\\,要不出不来,yeah String[] names = value.split("\\."); for (int i = 0; i < names.length; i++) { System.out.println(names[i]); }
System.out.println();
String sourceStr = "0\\1\\2"; String[] sourceStrArray = sourceStr.split("\\\\");//按照\\来分割字符串 for (int i = 0; i < sourceStrArray.length; i++) { System.out.print(sourceStrArray[i]+"\t");//结果是:0 1 2 }
(2)、而如果是"\",那么就得写成"\\\\", 字符串中的\\就是一个\,但是字符串中要用\则必须是\\,所以要转成\\,就需要四个\;
String sourceStr = "1,2,3"; String replace = sourceStr.replace(",","\\\\"); System.out.println(sourceStr);//结果是1,2,3 System.out.println(replace);//结果是1\\2\\3
(3)、如果一个字符串中有多个分隔符,可以用"|"作为连字符。
比如:String str = "Java string-split#test",可以用Str.split(" |-|#")把每个字符串分开。这样就把字符串分成了3个子字符串。
String str = "Java string-split#test"; String[] split = str.split(" |-|#"); for (int i = 0; i < split.length; i++) { System.out.print(split[i]+"\t");//结果是:Java string split test } System.out.println(); System.out.println("-------------"); String str1 = "Java string-split#test*jsp"; String[] split_plus = str1.split(" |-|#|\\*");//+、*、|、\等符号在正则表达示中有相应的不同意义,所以在使用时要进行转义处理,所以用\\*。 for (int i = 0; i < split_plus.length; i++) { System.out.print(split_plus[i]+"\t");//结果是:Java string split test jsp }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)