2010-06-24 59 views
0

它發生,用戶點擊輸入,我不想要包括它作爲我的輸入的一部分,字符串可以結束3次\ n所以只更換一個不會做我的解決方案的工作 ;字符串以' n'結尾什麼是最有效的操作方式?

String values[] = string_Ends_With_Back_Slash_N.split("\n"); 
String String_without_Back_Slash_N =new String (values [0]); 
//or just to point there without the new but i want later to dump the garbage. 

,或者至少轉儲值現在GC ....

所以兩個Q:

  1. 有沒有比較有效的方式..
  2. 我該給誰打電話編譯器(在Android的Java ...)
+0

你可以在Android中使用StringUtils嗎?有一些方便的函數用於處理字符串。 http://commons.apache.org/lang/api/org/apache/commons/lang/StringUtils.html – pakore 2010-06-24 10:05:16

+0

http://stackoverflow.com/questions/3100585/remove-end-of-line-字符結尾的字符串 – user85509 2010-06-24 10:06:22

+0

我也鼓勵你習慣這種語言的約定 - 雖然它本身與問題無關,但你的變量應該在較低的駝峯情況下常規地使用,例如'字符串stringWithoutBackSlashN'。實際上我發現讀取代碼很難,因爲你違反了命名約定。 – 2010-06-24 10:07:11

回答

4
String String_without_Back_Slash_N = string_Ends_With_Back_Slash_N.trim() 
+0

'/ n'是沒有「」(白色空間),因此你的方法是無關的... – 2010-06-24 10:12:50

+1

@ yoav.str嘗試它,它的工作;) – Bozho 2010-06-24 10:14:52

+0

我試過... :) 它沒有刪除/ n ... 在eclipse上的java ...在c#中我認爲它的工作我沒有一個編譯器,但這是一個nuce的東西,如果有人可以檢查 – 2010-06-24 10:24:58

5

嘗試String.trim()

此方法從字符串的末尾刪除所有字符,其中的ASCII碼小於空格(間隔,32)。這包括\n(10)。

0

""

+1

或使用修剪():) – 2010-06-24 10:05:49

+0

是的,但我要求指南的原因是我想提高效率,因此您的答案不幫助我。 – 2010-06-24 10:15:18

1
String s = "test\n\n\n"; 
s.replaceAll("\n", ""); 
+0

返回類型是我尋找的一個 String temp = s.replaceAll(「\ n」,「」); 但仍然我的問題是有更有效的方法來做到這一點? – 2010-06-24 10:21:57

0

替換所有\n(也許\r)由於字符串是不可變的沒有必要創建一個新的字符串。如果轉儲「垃圾」,垃圾收集器將認識到數組中的第一個元素仍然被引用並且不會丟棄它。其餘的將被處置。

相關問題