Как найти String.indexOf(«»)?

#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, а не с одним