0

私はこの方法をテストしようとしています:

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));      
}

結果: スクリーンショット

なぜこれは働きたくないのですか?

4

3 に答える 3

1

Strings は Java では不変です。次のようなことをしなければなりません:

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

おそらく、で使用されている正規表現も変更する必要がありますreplaceAll(テストできません):

String trimmedStr = str.trim().replaceAll("\\s+", " ");
于 2013-08-21T07:36:14.473 に答える