仅在第一个实例上分割string – java

我想通过'='charecter分割一个string。 但是我希望它只在第一个实例上分割。 我怎样才能做到这一点 ? 这里是'_'字符的JavaScript例子,但它不适用于我只在指定字符的第一个实例上拆分string

例如:

apple=fruit table price=5 

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

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

但是我需要

 [apple],[fruit table price=5] 

谢谢

 string.split("=", 2); 

由于String.split(String,int)解释:

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

limit参数控制模式应用的次数,因此影响结果数组的长度。 如果极限值n大于零,那么模式将被最多应用n -1次,数组的长度将不会大于n ,并且数组的最后一项将包含超出最后匹配分隔符的所有input。

例如,stringboo: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" } 

是的你可以,只是通过整数参数的拆分方法

 String stSplit = "apple=fruit table price=5" stSplit.split("=", 2); 

这里是一个java文档参考: String#split(java.lang.String,int)

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

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

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

试试这个代码…

它的工作。

 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]); } } 

String slpitString [] = stringInToSearch.split(“pattern”,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_! 

我喜欢写自己的方法:)