我有三个按钮:"Q","W“和"E”。当被点击时,他们应该将他们的字母附加到StringBuilder后面。如下所示:
StringBuilder s = new StringBuilder();(单击"Q“按钮时):
s.append("q");(单击"W“按钮时):
s.append("w");但我想要的是在StringBuilder中最多有3个字符。在到达键的首字符后,在雨刮器末端按下3位数字,并写入新的数字。当StringBuilder达到三个字符时,它将删除第一个字符,并追加下一个字符。就像蚂蚁一样。示例:
StringBuilder is "QWW",
When E button clicked StringBuilder must be "WWE".
When W button clicked StringBuilder must be "WEW".发布于 2013-03-31 04:57:05
使用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-31 05:01:18
替代方法是使用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-31 04:58:51
这就是了:
StringBuilder sBuilder = new StringBuilder();
public void prepareBuilder(String str)
{
if (sBuilder.length() < 3)
sBuilder.append(str);
else
{
sBuilder.deleteCharAt(0);
sBuilder.append(str);
}
}https://stackoverflow.com/questions/15723309
复制相似问题