首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设置StringBuilder

设置StringBuilder
EN

Stack Overflow用户
提问于 2013-03-31 04:46:45
回答 3查看 145关注 0票数 2

我有三个按钮:"Q","W“和"E”。当被点击时,他们应该将他们的字母附加到StringBuilder后面。如下所示:

代码语言:javascript
复制
StringBuilder s = new StringBuilder();

(单击"Q“按钮时):

代码语言:javascript
复制
s.append("q");

(单击"W“按钮时):

代码语言:javascript
复制
s.append("w");

但我想要的是在StringBuilder中最多有3个字符。在到达键的首字符后,在雨刮器末端按下3位数字,并写入新的数字。当StringBuilder达到三个字符时,它将删除第一个字符,并追加下一个字符。就像蚂蚁一样。示例:

代码语言:javascript
复制
StringBuilder is "QWW",
When E button clicked StringBuilder must be "WWE".
When W button clicked StringBuilder must be "WEW".
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-31 04:57:05

使用StringBuilder#deleteCharAt(int index)

代码语言:javascript
复制
public static void addToStringBuilder(StringBuilder sb, int max, char letter)
{
    if(sb.length() >= max) sb.deleteCharAt(0);
    sb.append(letter);
}

例如:

代码语言:javascript
复制
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);

输出:

代码语言:javascript
复制
Q
QW
QWW
WWE
WEW
票数 0
EN

Stack Overflow用户

发布于 2013-03-31 05:01:18

替代方法是使用char数组

代码语言:javascript
复制
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;
}

最后:

代码语言:javascript
复制
String res = new String(arr);
票数 1
EN

Stack Overflow用户

发布于 2013-03-31 04:58:51

这就是了:

代码语言:javascript
复制
StringBuilder sBuilder = new StringBuilder();
public void prepareBuilder(String str)
{
  if (sBuilder.length() < 3)
  sBuilder.append(str);
  else 
  {
    sBuilder.deleteCharAt(0);
    sBuilder.append(str);

  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15723309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档