2

「Q」、「W」、「E」の3つのボタンがあります。クリックすると、文字を に追加する必要がありますStringBuilder。このような:

StringBuilder s = new StringBuilder();

(「Q」ボタンクリック時):

s.append("q");

(「W」ボタンクリック時):

s.append("w");

しかし、私が欲しいのは、最大3文字までStringBuilderです. キーの最初の文字に達した後の 3 桁がエンド ワイパーで押され、新しいキーが書き込まれます。が 3 文字にStringBuilder達すると、最初の文字が削除され、次の文字が追加されます。マーキーのように。例:

StringBuilder is "QWW",
When E button clicked StringBuilder must be "WWE".
When W button clicked StringBuilder must be "WEW".
4

3 に答える 3

1

別の方法は、char配列を使用することです

char[] arr = new char[]{'','',''};
...
private void appendChar(char a){
  for(int i=0;i<arr.length-1;i++){
    arr[i] = arr[i+1];
  }
  arr[arr.length-1] = a;
}

そして最後に:

String res = new String(arr);
于 2013-03-30T21:01:18.043 に答える
0

使用StringBuilder#deleteCharAt(int index):

public static void addToStringBuilder(StringBuilder sb, int max, char letter)
{
    if(sb.length() >= max) sb.deleteCharAt(0);
    sb.append(letter);
}

例えば:

StringBuilder sb = new StringBuilder();
addToStringBuilder(sb, 3, 'Q');
System.out.println(sb);
addToStringBuilder(sb, 3, 'W');
System.out.println(sb);
addToStringBuilder(sb, 3, 'W');
System.out.println(sb);
addToStringBuilder(sb, 3, 'E');
System.out.println(sb);
addToStringBuilder(sb, 3, 'W');
System.out.println(sb);

出力:

Q
QW
QWW
WWE
WEW
于 2013-03-30T20:57:05.407 に答える