Разделить строку только на первый экземпляр - java

Я хочу разбить строку на '=' charecter. Но я хочу, чтобы он разделился только на первый экземпляр. Как я могу это сделать? Вот пример JavaScript для '_' char, но он не работает для меня разделите строку только на первый экземпляр указанного символа

Пример:

apple=fruit table price=5

Когда я пытаюсь String.split('='); он дает

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

Но мне нужно

[apple],[fruit table price=5]

Спасибо

Ответ 1

string.split("=", 2);

Как String.split(String,int) объясняется:

Массив, возвращаемый этим методом, содержит каждую подстроку этой строки, которая заканчивается другой подстрокой, которая соответствует заданному выражению или заканчивается в конце строки. Подстроки в массиве находятся в том порядке, в котором они встречаются в этой строке. Если выражение не соответствует какой-либо части ввода, то результирующий массив имеет только один элемент, а именно эту строку.

Параметр 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" }

Ответ 2

Да, вы можете просто передать целочисленный параметр методу split

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

stSplit.split("=", 2);

Вот ссылка на java doc: String # split (java.lang.String, int)

Ответ 3

Как и во многих других ответах, предложенный предельный подход, это может быть другим способом.

Вы можете использовать метод indexOf в String, который вернет первое Окно указанного символа, используя этот индекс, вы можете получить желаемый выход

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

Ответ 4

Попробуйте этот код...

Работает.

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

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

Ответ 6

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_!

Мне нравится писать собственные методы:)