如何找到String.indexOf(“\”)?

时间:2011-04-05 04:15:43

标签: java string

我需要获得在一堆\ r \ n \ r \ n垃圾之前出现的子字符串。所以我想geto第一个/那个出现。不接受indexOf(“\”)。 String.indexOf(“\”)与第一个不匹配。 ????? 感谢

6 个答案:

答案 0 :(得分:3)

如果您要查找字符串中第一次出现\n,那么搜索\\将无济于事。您需要查找\n

String.indexOf("\n")

请注意\n是一个字符,而不是两个字符。它是一个转义序列,用于计算ASCII值为10的字符。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

indexOf("/") 

应该可以正常工作。为什么你说不是?

答案 3 :(得分:0)

对我来说很好:

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

发布您的SSCCE来证明问题。

答案 4 :(得分:0)

为什么indexOf('/')不起作用?它返回错误的索引吗?正斜杠应该没问题 - 反斜杠(\)是转义字符。

答案 5 :(得分:0)

如果您要查找'\',请使用.indexOf(“\”);