仅在第一个实例上分割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。例如,string
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" }
是的你可以,只是通过整数参数的拆分方法
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_!
我喜欢写自己的方法:)