1

先頭に複数のスペースがある文字列があります。

String str = "  new york city";

最初の文字の前のスペースだけを削除したいので、replaceAll は機能しません。

このコード行があります

 if (str.startsWith(" ")){
  str = str.replaceFirst(" ", "");          }

これはスペースを削除しますが、すべてではありません。したがって、この行を実行する必要があります

!str=startswith(" "))

これはループを介して達成できると思いますが、私はループに非常に慣れていません。これどうやってするの?

前もって感謝します。

4

6 に答える 6

0

trim() を使用すると、開始スペースと終了スペースの両方が削除されます。ただし、開始スペースを削除するように求めているため、以下のコードが役立つ場合があります。

public String trimOnlyLeadingSpace()
  {
    int i = this.count;
    int j = 0;
    int k = this.offset;
    char[] arrayOfChar = this.value;
    while ((j < i) && (arrayOfChar[(k + j)] <= ' '))
      ++j;
    return (((j > 0) || (i < this.count)) ? substring(j, i) : this);
  }
于 2013-07-09T17:09:04.670 に答える
0

Google で簡単に検索すると、while と do-while の 2 つの基本的なループの簡単な概要が記載されたページが表示されます。

http://www.homeandlearn.co.uk/java/while_loops.html

あなたの場合、ループに入る前に条件を確認したいので、「while」タイプのループを使用したいと考えています。したがって、次のようになります。

while (str.startsWith(" ")){
  str = str.replaceFirst(" ", "");
}

入力文字列が空の場合に startsWith() がどのように動作するか完全にはわからないため、" " (空白のみ) や "" (空の文字列) などの文字列を使用して、このコードを必ずテストする必要があります。

ループを学習することは非常に重要です - 少なくとも、あなたの計画が、あなたが本当に受けたくないプログラミングクラスを通過する以上のものを含む場合. (「while」ループが複雑だと思われる場合は、「for」に出会うまで待ってください!)

于 2013-07-09T17:15:05.190 に答える