1

「おはようございます」という文字列があります。文字列の先頭のマージンを削除したい (スペースではなく、おそらく改行である可能性があります) と、マージンの中央と後ろを保持します。これを行う方法?

4

3 に答える 3

1

ここでは正規表現がうまく機能します。1 つ以上の空白文字 (\\s+) が語句 (^) の先頭にある場合は、先頭の空白文字を空の文字列に置き換えます。

private static String trimLeading(String value) {
    return value != null ? value.replaceFirst("^\\s+", "") : null;
}

JUnit/hamcrest を使用してテストします。

@Test
public void test() {
    assertThat(trimLeading("good morning "), is("good morning "));
    assertThat(trimLeading(" good morning "), is("good morning "));
    assertThat(trimLeading("  good morning "), is("good morning "));
    assertThat(trimLeading("\ngood morning "), is("good morning "));
    assertThat(trimLeading("\rgood morning "), is("good morning "));
    assertThat(trimLeading("\tgood morning "), is("good morning "));
    assertThat(trimLeading(" \t \n \r  good morning "), is("good morning "));
}
于 2013-03-29T08:04:13.813 に答える
1

trim()は先頭末尾の空白を削除しますが、先頭の空白のみを削除するには、次のように独自の ltrim メソッドを実装する必要があります。

public static String ltrim(String s) {
    int i = 0;
    while (i < s.length() && Character.isWhitespace(s.charAt(i))) {
        i++;
    }
    return s.substring(i);
}

String myString = " whitespace be gone!";
String trimmedString = ltrim( myString );
于 2013-03-29T02:29:20.600 に答える
0
String b=" This is for test "
for(int i=0;i<=b.length()-1;i++)  
    {  
     char temp=b.charAt(i);  
     if(temp==' ')  
     {  
      whitespaceNumber++;  
     }  
    }  
    System.out.println("Whitespace number is : "+whitespaceNumber);  
于 2013-03-29T03:41:17.507 に答える