2011-04-05 18 views
0

我需要得到在一堆\ r \ n \ r \ n垃圾之前出現的子字符串。所以我想要geto第一個/出現。 indexOf(「\」)不被接受。 String.indexOf(「\」)與第一個不匹配。 ????? 謝謝如何查找String.indexOf(「」)?

+0

你的意思是\ n嗎? \ n – sheki 2011-04-05 04:18:24

+0

對不起\ r \ n \ r \ n是字符串 – Androider 2011-04-05 04:22:53

+0

'String s =「hello \ r \ n」; s = s.replaceAll(「\\ r \\ n」,「」);' – 2011-04-05 04:26:40

回答

3

如果您正在查找字符串中第一次出現\n,那麼搜索\\將無濟於事。你需要尋找\n

String.indexOf("\n") 

請注意,\n是一個字符,而不是兩個。這是一個轉義序列,其值爲ASCII值爲10的字符。

+0

我會嘗試\ r謝謝 – Androider 2011-04-05 04:27:44

0
indexOf("/") 

應該可以正常工作。你爲什麼說它不是?

+0

對不起\ r \ n \ r \ n是字符串,\ \不會找到它 – Androider 2011-04-05 04:23:26

0

正常工作:

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

安置自己SSCCE證明的問題。

0

爲什麼indexOf('/')無效?它會返回錯誤的索引嗎?正斜槓應該很好 - 反斜槓(\)是轉義字符。

+0

反斜槓是'\'。糾正它。 – 2011-04-05 04:20:44

+0

是的,這是一個錯字。 – 2011-04-05 04:22:05

+0

ok字符串是\ r \ n \ r \ n – Androider 2011-04-05 04:24:03

0

如果'\'是您正在嘗試查找的內容,請使用.indexOf(「\」);

+0

wtf,我用\ s寫了\\,而不是一個 – Duncan 2011-04-05 04:27:29

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