Разделить строку только на первый экземпляр - 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_!
Мне нравится писать собственные методы:)