好问题
Good  Question
  • 首 页
  • 问题
    • PHP
    • JAVA
    • CPlusPlus
    • C#
    • SQL
  • 关 于
  • 联 系
如何在Java中分割字符串 关闭 返回上一级  

如何在Java中分割字符串
+ 查看更多

发布日期:2018-03-10 13:35
分类:JAVA
浏览次数:297
我有一个字符串,"004-034556",我想分成两个字符串:
string1 = 004
string2 = 034556
这意味着第一个字符串将包含' - '之前的字符,第二个字符串将包含' - '后面的字符. 我还想检查字符串中是否有" - ". 如果没有,我会抛出异常. 我如何做到这一点?

回答:

只需使用适当的方法:String#split().

String string ="004-034556";
String [] parts = string.split(" - ");
String part1 = parts [0]; // 004
String part2 = parts [1]; // 034556

请注意,这需要一个正则表达式,所以记住必要时转义特殊字符.
有12个字符有特殊含义:反斜杠\,脱字符号^,美元符号$,句点或点.,竖线或管符号|,问号?,星号或星号*,加号+ ,开始括号(,右括号)和开头的方括号[,开头的大括号{,这些特殊字符通常称为"元字符".
所以,如果你想分开例如.周期/点.这意味着正则表达式中的"任何字符",使用反斜杠\来转义单个特殊字符,如split("\\."),或使用字符类[]来表示文本字符,如split(" ]"),或使用Pattern#quote()来转义整个字符串,如split(Pattern.quote)".")).
String [] parts = string.split(Pattern.quote(".")); //拆分期.
要预先测试字符串是否包含某些字符,只需使用String#contains().
if(string.contains("-")){
 //拆分它.
} else {
 throw new IllegalArgumentException("tring"+ string +"does not contain -");
}}
如果不采取正则表达式也可以使用String#matches().
如果你想保留分割字符在结果部分,然后使用正面的周转.如果你想要分割的字符结束在左手边,使用积极的后瞻通过前缀<=组模式.
String string = "004-034556";
String[] parts = string.split("(?<=-)");
String part1 = parts[0]; // 004-
String part2 = parts[1]; // 034556

如果要使分割字符在右侧结束,请在模式上使用前缀?= group来使用正前瞻.
String string = "004-034556";
String[] parts = string.split("(?=-)");
String part1 = parts[0]; // 004
String part2 = parts[1]; // -034556

如果你想限制结果的数量,那么你可以提供所需的数量作为split()方法的第二个参数.
String string ="004-034556-42";
String [] parts = string.split("-",2);
String part1 = parts [0]; // 004
String part2 = parts [1]; // 034556-42
上一篇 Java中的For each是如何使用的?
如何在Java中合并两个数组?下一篇
下一篇如何在Java中合并两个数组?

最新文章

  • 函数`__construct`用来干嘛的
    发布日期:2018-03-26
  • 通过访客的IP得到他们的地区
    发布日期:2018-03-26
  • 合并两个PHP对象的最好的方法是什么?
    发布日期:2018-03-26
  • 该如何把一该如何把一个对象转化成数组?
    发布日期:2018-03-26
  • 什么是输出缓冲区?
    发布日期:2018-03-26
  • 在PHP中怎么把用逗号分隔的字符串分隔在一个数组里?
    发布日期:2018-03-26
  • 在PHP中使用foreach循环时查找数组的最后一个元素
    发布日期:2018-03-26
关于好问
收集整理一些有用的问题和回答,造福中国的程序旺和IT喵们!
友情链接
起飞页 
相关信息
版权声明
Copyright © 2016 - 2022  苏州卡达网络科技有限公司 备案号:苏ICP备09008221号