0

簡単な運動をしようとしている間、私はますます問題を抱えています。文字列内の最終的な開始文字""をすべて削除しようとしています。

例:space-space-space50(このフォーラムは余分なスペースを削除するため、私はそれを理解できません)結果:50

これがコードです...

            char c=textToShow.getText().toString().charAt(1);
    int i=1;
    while (c == ' '){
        textToShow.setText(textToShow.getText().toString().substring(i));
    //New char
        i++;
    c=textToShow.getText().toString().charAt(i);
    }
4

1 に答える 1

0

あなたは正しい考えを持っていますが、あなたの実装はオフです。初め

char c=textToShow.getText().toString().charAt(1);

で開始する必要0があります。これがインデックスの作成方法です。

intは適切に初期化されますが、実際には必要ありません。これは、文字列の先頭のみを操作するためです。しかし、あなたのループは物事がうまくいかないところです。サブストリングコードは適切ですが、ストリングを短縮して変更しているため、iをインクリメントする必要はありません。また、

c=textToShow.getText().toString().charAt(i);

c = textToShow.getText()。toString()。charAt(0);である必要があります。あなたはまだ文字列の始まりをチェックしています。

ループを使用したより効率的な実装は次のとおりです。

char c=textToShow.getText().toString().charAt(0);
String temp = textToShow.setText(textToShow.getText().toString();
while (c == ' ' && temp.length > 0)//also check to see if you're accessing an empty string.
{
  temp = temp.substring (1);
  c = temp.charAt (0);
}
textToShow.setText (temp);

もちろん、これは演習用です。正しい方法で実行したい場合は、temp.trim()を使用します。

于 2012-12-12T00:34:15.260 に答える