仅在第一个实例上拆分字符串 - java

时间:2013-08-27 10:21:38

标签: java string split

我想用'='charecter分割字符串。但是我希望它只能在第一个实例中拆分。我怎样才能做到这一点 ?这是'_'char的JavaScript示例,但它对我不起作用 split string only on first instance of specified character

示例:

apple=fruit table price=5

当我尝试String.split('=');它给出了

[apple],[fruit table price],[5]

但我需要

[apple],[fruit table price=5]

由于

6 个答案:

答案 0 :(得分:221)

string.split("=", 2);

正如String.split(java.lang.String regex, int limit)所解释的那样:

  

此方法返回的数组包含此字符串的每个子字符串,该字符串由与给定表达式匹配的另一个子字符串终止,或者由字符串的结尾终止。数组中的子串按它们在此字符串中出现的顺序排列。如果表达式与输入的任何部分都不匹配,那么结果数组只有一个元素,即该字符串。

     

limit参数控制模式的应用次数,因此会影响结果数组的长度。如果极限 n 大于零,那么该模式将最多应用 n - 1次,数组的长度将不大于 n ,并且数组的最后一个条目将包含除最后一个匹配分隔符之外的所有输入。

     

例如,字符串boo:and:foo会使用以下参数生成以下结果:

Regex Limit    Result
:     2        { "boo", "and:foo" }
:     5        { "boo", "and", "foo" }
:    -2        { "boo", "and", "foo" }
o     5        { "b", "", ":and:f", "", "" }
o    -2        { "b", "", ":and:f", "", "" }
o     0        { "b", "", ":and:f" }

答案 1 :(得分:9)

是的,你可以,只需将整数参数传递给split方法

String stSplit = "apple=fruit table price=5"

stSplit.split("=", 2);

以下是java doc参考:String#split(java.lang.String, int)

答案 2 :(得分:5)

正如许多其他答案提出的限制方法,这可能是另一种方式

您可以在String上使用indexOf方法,该方法将返回给定字符的第一个Occurance,使用该索引可以获得所需的输出

String target = "apple=fruit table price=5" ;
int x= target.indexOf("=");
System.out.println(target.substring(x+1));

答案 3 :(得分:0)

String slpitString[] = stringInToSearch.split("pattern", 2);

答案 4 :(得分:0)

试用此代码......

它的工作。

public class Split
{
    public static void main(String...args)
    {
        String a = "%abcdef&Ghijk%xyz";
        String b[] = a.split("%", 2);

        System.out.println("Value = "+b[1]);
    }
}

答案 5 :(得分:-2)

String[] func(String apple){
String[] tmp = new String[2];
for(int i=0;i<apple.length;i++){
   if(apple.charAt(i)=='='){
      tmp[0]=apple.substring(0,i);
      tmp[1]=apple.substring(i+1,apple.length);
      break;
   }
}
return tmp;
}
//returns string_ARRAY_!

我喜欢写自己的方法:)