2013-08-21 75 views
0

我試圖測試這個方法:JUnit測試的情況下不能正常工作

public static String trimExtraSpace(String str) { 
    str.trim().replaceAll(" +", " "); 
    return str; 
} 

JUnit測試的情況下,我有:

@Test 
public void testTrimExtraSpace() { 
    String str = " foo \n b a r "; 
    assertEquals("foo \n b a r", Strings.trimExtraSpace(str));  
} 

Reuslt: Screenshot

爲什麼這個不想工作?

回答

1

String s爲Java中不可改變的。你必須做這樣的事情:

public static String trimExtraSpace(String str) { 
    String trimmedStr = str.trim().replaceAll(" +", " "); 
    return trimmedStr; 
} 

您還可能有改變replaceAll使用正則表達式(我不能測試):

String trimmedStr = str.trim().replaceAll("\\s+", " "); 
+0

感謝您的明確信息。這對我有用 – Dozent

1

我想從API文檔trim()方法返回一個String實例,您需要捕獲該實例並對其進行操作,然後返回(返回的)實例。

0

我想你應該使用正則表達式。在這種情況下:

urString = yourString.replaceAll("\\s+", " "); 

玩得開心

相關問題