2011-11-30 24 views
8

私はjavaのマイナス操作に小さな問題があります。ユーザーが 'backspace'キーを押すと、ユーザーが入力したcharが存在する単語から取り除かれます。 例えば 単語= MYNAME と1つのバックスペースの後 単語= mynam文字列のマイナス操作

これはちょっと私が持っているものの次のとおりです。

String sentence = ""; 
char c = evt.getKeyChar(); 
if(c == '\b') { 
    sentence = sentence - c; 
} else { 
    sentence = sentence + c; 
} 

追加操作が動作します。したがって、手紙を追加すると、それは既存の単語に追加されます。しかし、マイナスは機能していません。私はここに何かを逃していますかまたはそれを完全に間違っている?

答えて

8

あなたは完全に間違っています。 substringから0まで、文字列の長さから1を引いた値にする必要があります。したがって:

sentence = sentence.substring(0, sentence.length() - 1); 
+0

素晴らしいことです。私は+が働いていたので ' - 'を使ってみました。私はウェブ上の参照を見つけることができませんでした(おそらくそこに何かがあります、私は見ていませんでした) – user1005253

0

便宜上、Javaでは '+'記号による文字列の連結がサポートされています。これは、クラス型をオペランドとする1つの2項演算子です。 Java言語仕様のString concatenation operatorを参照してください。

Javaは、文字列とcharの間に ' - '演算子のオーバーロードをサポートしていません。

代わりに、文字列の前後に部分文字列を追加して、文字を文字列から削除できます。

0
sentance = sentance.substring(0, sentance.length() - 1); 

文字列から文字を削除する+に対応する演算子はありません。実際にその後、新しいキャラクターや

sentence.deleteCharAt(sentence.length() - 1); 

ため

sentence.append(a); 

StringBuilder sentence = new StringBuilder(); 

は、次に、あなたのような何かを行うことができます:

0

あなたは、StringBuilderクラス、例えばを調査する必要があります文字列を使用したい場合は、次のように使用してください。

String s = sentence.toString();