2013-08-21 43 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+", " "); 

玩得开心

相关问题