Как найти String.indexOf ("\")? - PullRequest
       4

Как найти String.indexOf ("\")?

0 голосов
/ 05 апреля 2011

Мне нужно получить подстроку, которая появляется перед кучей \ r \ n \ r \ n мусора.Итак, я хочу получить первое / что появляется.indexOf ("\") не принимается.String.indexOf ("\") не соответствует первому.?????Спасибо

Ответы [ 6 ]

3 голосов
/ 05 апреля 2011

Если вы ищете первое вхождение \n в строке, тогда поиск \\ не поможет.Вам нужно искать \n.

String.indexOf("\n")

Обратите внимание, что \n это один символ, а не два.Это escape-последовательность, которая оценивает символ со значением ASCII 10.

1 голос
/ 05 апреля 2011
String s1 = "LINE1\r\n\r\nLINE2";
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 = "LINE1\r\n\r\nLINE2";
BufferedReader br = new BufferedReader(new StringReader(s1));
try {
    System.out.println(br.readLine());
} finally {
    br.close();
}

Вывод в обоих случаях: LINE1

0 голосов
/ 05 апреля 2011

, если вы пытаетесь найти '\', используйте .indexOf ("\");

0 голосов
/ 05 апреля 2011

Почему indexOf('/') не работает? Это возвращает неправильный индекс? Прямые косые черты должны быть хорошими - обратные косые черты (\) являются escape-символами.

0 голосов
/ 05 апреля 2011

У меня отлично работает:

System.out.println( "abc//def//".indexOf("/") );

Разместите свой SSCCE , демонстрирующий проблему.

0 голосов
/ 05 апреля 2011
indexOf("/") 

должно работать нормально. Почему вы говорите, что это не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...