我想通过分隔符“-”将字符串“004-034556”拆分为两个字符串:

part1 = "004";
part2 = "034556";

这意味着第一个字符串将包含“-”之前的字符,第二个字符串将包括“-”之后的字符。

我还想检查字符串中是否有“-”。


当前回答

String str="004-034556"
String[] sTemp=str.split("-");// '-' is a delimiter

string1=004 // sTemp[0];
string2=034556//sTemp[1];

其他回答

String s="004-034556";
for(int i=0;i<s.length();i++)
{
    if(s.charAt(i)=='-')
    {
        System.out.println(s.substring(0,i));
        System.out.println(s.substring(i+1));
    }
}

正如大家所提到的,split()是在您的案例中可能使用的最佳选项。另一种方法可以是使用substring()。

使用org.apache.commons.lang.StringUtils的拆分方法,该方法可以根据要拆分的字符或字符串拆分字符串。

方法签名:

public static String[] split(String str, char separatorChar);

在您的情况下,当出现“-”时,您希望拆分字符串。

您可以简单地执行以下操作:

String str = "004-034556";

String split[] = StringUtils.split(str,"-");

输出:

004
034556

假设字符串中不存在-,则返回给定的字符串,并且不会出现任何异常。

您可以使用拆分方法:

public class Demo {
    public static void main(String args[]) {
        String str = "004-034556";

        if ((str.contains("-"))) {
            String[] temp = str.split("-");
            for (String part:temp) {
                System.out.println(part);
            }
        }
        else {
            System.out.println(str + " does not contain \"-\".");
        }
    }
}
 String string = "004^034556-34";
 String[] parts = string.split(Pattern.quote("^"));

如果你有一个特殊的字符,那么你可以使用Pattern.quote。如果你只有破折号(-),那么你就可以缩短代码:

 String string = "004-34";
 String[] parts = string.split("-");

如果尝试添加其他特殊字符来代替短划线(^),则错误将生成ArrayIndexOutOfBoundsException。为此,您必须使用Pattern.quote。

import java.io.*;

public class BreakString {

  public static void main(String args[]) {

    String string = "004-034556-1234-2341";
    String[] parts = string.split("-");

    for(int i=0;i<parts.length;i++) {
      System.out.println(parts[i]);
    }
  }
}