Я хочу получить конкретный элемент с именем Что-то в строке внутри String[] для JAVA.
Мой код =
String sentence = "AP=Something+example|AS=Explanation";
String[] word = sentence.split("\\|");
for (String w: word){
System.out.println(w);
}
Мой текущий вывод:
AP=Something+example
AS=Explanation
Мой ожидаемый результат должен быть:
Something // the other information I dont want to take. Is there a better and faster way and not too time consuming?
заранее спасибо
О да, позвольте мне попробовать.
Нет, я получил ошибки Исключение в потоке "main" java.util.regex.PatternSyntaxException: висячий метасимвол '+' рядом с индексом 0 + ^
А точнее String word = sentence.substring(sentence.indexOf('S'), sentence.indexOf('+'));
Но ваш вышеприведенный метод работает только тогда, когда indexOf содержит «S», верно? Что, если мое «Что-то» продолжает меняться, и не всегда как «Что-то», а как «Другое»?
Запутался - зачем разбивать на трубу, если хочешь разойтись на +? Также следует экранировать согласно |
Я получил ошибки при разделении на +. поэтому. Я написал ошибку в комментарии
Я решил ошибки. Могу ли я узнать, как получить подстроку после AP?
Затем нужно указать правила. Если вы имеете в виду «между = и +», измените sentence.indexOf('S') на sentence.indexOf('=')+1.
Да, но вы сделали двойную обратную косую черту? sentence.split("\\+")
Это сработало! Я буду читать об этих функциях. Кое-что узнал спасибо!




Если вы хотите разделить трубу плюс нет, измените
String[] word = sentence.split("\\|");
к
String[] word = sentence.split("\\+");
Видимо, он тоже хочет избавиться от "AP = ". Так что это будет что-то вроде String word = sentence.split("\\+")[0].split(" = ")[1];.
@Жандарм Спасибо. Видимо я не понял, что он хотел.
Уценка на SO несколько сбивает с толку, поскольку OP не заключает вывод в кавычки.
Я не понимаю, чего вы на самом деле хотите, но:
String sentence = "AP=Something+example|AS=Explanation";
String[] recs = sentence.split("\\|");
HashMap<String, String> h = new HashMap<String,String>();
for (String r : recs) {
String[] vals = r.split(" = ");
h.put(vals[0], vals[1]);
}
System.out.println(h.get("AP").split("\\+")[0]);
Этот код настолько плох, но посмотрите на общую идею.
Мой английский тоже так плох.
Почему бы тебе просто
split("+")?