#java #string
#java #строка
Вопрос:
Мне нужно получить подстроку, которая появляется перед кучей r n rn мусора. Итак, я хочу перейти к первому /, который появляется. indexOf(«») не принимается. String.indexOf(«») не соответствует первому . ????? Спасибо
Комментарии:
1. Извините, rn r n — это строка
2.
String s = "hellorn";s =s.replaceAll("\r\n", "");
Ответ №1:
Если вы ищете первое вхождение n
в строке, то поиск \
не поможет. Вам нужно искать n
.
String.indexOf("n")
Обратите внимание, что n
это один символ, а не два. Это escape-последовательность, которая вычисляется до символа со значением ASCII 10.
Ответ №2:
String s1 = "LINE1rnrnLINE2";
Matcher matcher = Pattern.compile(". ").matcher(s1);
if (matcher.find()) {
System.out.println(matcher.group());
} else {
System.out.println("String contains no character other than \n and \r");
}
или немного более извращенный:
String s1 = "LINE1rnrnLINE2";
BufferedReader br = new BufferedReader(new StringReader(s1));
try {
System.out.println(br.readLine());
} finally {
br.close();
}
Вывод в обоих случаях: LINE1
Ответ №3:
indexOf("/")
должно работать нормально. Почему вы говорите, что это не так?
Комментарии:
1. Извините, rn r n — это строка, и \ не находит ее
Ответ №4:
У меня работает нормально:
System.out.println( "abc//def//".indexOf("/") );
Опубликуйте свой SSCCE, демонстрирующий проблему.
Ответ №5:
Почему indexOf('/')
не работает? Возвращает ли он неправильный индекс? Прямые косые черты должны быть в порядке — обратные косые черты (
) являются управляющими символами.
Ответ №6:
если » — это то, что вы пытаетесь найти, используйте .indexOf(«»);
Комментарии:
1. черт возьми, я написал \ с двумя s, а не с одним