我想通过分隔符“-”将字符串“004-034556”拆分为两个字符串:
part1 = "004";
part2 = "034556";
这意味着第一个字符串将包含“-”之前的字符,第二个字符串将包括“-”之后的字符。
我还想检查字符串中是否有“-”。
我想通过分隔符“-”将字符串“004-034556”拆分为两个字符串:
part1 = "004";
part2 = "034556";
这意味着第一个字符串将包含“-”之前的字符,第二个字符串将包括“-”之后的字符。
我还想检查字符串中是否有“-”。
当前回答
无论是否有任何类型的分隔符,您都可以简单地使用StringTokenizer将字符串拆分为两个或多个部分:
StringTokenizer st = new StringTokenizer("004-034556", "-");
while(st.hasMoreTokens())
{
System.out.println(st.nextToken());
}
其他回答
这:
String[] out = string.split("-");
应该做你想做的事。string类有许多方法可用于字符串操作。
// This leaves the regexes issue out of question
// But we must remember that each character in the Delimiter String is treated
// like a single delimiter
public static String[] SplitUsingTokenizer(String subject, String delimiters) {
StringTokenizer strTkn = new StringTokenizer(subject, delimiters);
ArrayList<String> arrLis = new ArrayList<String>(subject.length());
while(strTkn.hasMoreTokens())
arrLis.add(strTkn.nextToken());
return arrLis.toArray(new String[0]);
}
实现这一点的一种方法是在for每个循环中运行字符串,并使用所需的拆分字符。
public class StringSplitTest {
public static void main(String[] arg){
String str = "004-034556";
String split[] = str.split("-");
System.out.println("The split parts of the String are");
for(String s:split)
System.out.println(s);
}
}
输出:
The split parts of the String are:
004
034556
总结一下:在Java中至少有五种拆分字符串的方法:
String.split():String[]parts=“10,20”.split(“,”);Pattern.compile(regexp).splitAsStream(输入):List<String>strings=Pattern.compile(“\\|”).splitAsStream(“010 | 020202”).collector(Collectors.toList());StringTokenizer(遗留类):StringTokenizer strings=新StringTokeniizer(“欢迎使用EXPLAINJAVA.COM!”,“.”);while(strings.hasMoreTokens()){String substring=strings.nexToken();System.out.println(子字符串);}谷歌瓜瓦拆分器:Iterable<String>result=Splitter.on(“,”).split(“1,2,3,4”);Apache Commons StringUtils:String[]strings=StringUtils.split(“1,2,3,4”,“,”);
因此,您可以根据需要选择最佳选项,例如返回类型(数组、列表或可迭代)。
这里是这些方法的大概述和最常见的示例(如何按点、斜线、问号等分割)
有时,如果您想拆分包含+的字符串,那么它不会拆分;相反,您将得到一个运行时错误。在这种情况下,首先将+替换为_,然后拆分:
this.text=text.replace("/", "_");
String temp[]=text.split("_");