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

我想通过'='字符分割字符串。但我只想让它在第一时间分裂。我该怎么做?下面是“_'字符”的JavaScript示例,但它对我不起作用 仅在指定字符的第一个实例上拆分字符串

示例:

apple=fruit table price=5

当我尝试使用string.split('=');它给了

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

但我需要

[apple],[fruit table price=5]

谢谢

166815 次浏览
string.split("=", limit=2);

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

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

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

例如,字符串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" }

可以,只需将整数参数传递给split方法即可

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


stSplit.split("=", 2);

下面是一个Java文档参考:String#split(Java.Lang.String,int)

正如许多其他答案所建议的限制方法一样,这可能是另一种方法

您可以在字符串上使用__abc0方法,该方法将返回给定字符的第一次出现,使用该索引您可以获得所需的输出

String target = "apple=fruit table price=5" ;
int x= target.indexOf("=");
System.out.println(target.substring(x+1));
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_!

我喜欢写自己的方法:)

String string = "This is test string on web";
String splitData[] = string.split("\\s", 2);


Result ::
splitData[0] =>  This
splitData[1] =>  is test string




String string = "This is test string on web";
String splitData[] = string.split("\\s", 3);


Result ::
splitData[0] =>  This
splitData[1] =>  is
splitData[1] =>  test string on web

默认情况下,split方法根据给定的正则表达式创建n个数组。但是,如果您想限制拆分后要创建的数组的数量,请将第二个参数作为整数参数传递。

这是可行的:

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