首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >字符串中字符洗牌的问题

字符串中字符洗牌的问题
EN

Stack Overflow用户
提问于 2015-01-18 13:12:57
回答 1查看 50关注 0票数 1

我想为一项任务洗牌一根绳子。当我尝试这样做时,它会抛出一个NullPointerException

代码语言:javascript
复制
for (char d : masterCode.toCharArray()) {
    possibleLetters.add(d);
}
Collections.shuffle(possibleLetters);
for (char c : possibleLetters) { // arraylist of characters
    sb.append(c); //stringbuilder
    masterCode = sb.toString();
}

所以我尝试了另一种方法:

代码语言:javascript
复制
masterCode = masterCode.substring(0, 4);
for (char d : masterCode.toCharArray()) {
    possibleLetters.add(d);
}
Collections.shuffle(possibleLetters);
for (char c : possibleLetters) { // arraylist of characters
    //sb.append(c); //stringbuilder
    masterCode = masterCode.concat(Character.toString(c)); // string
}

但这也没有给出预期的结果。masterCode首先是ECAB,然后是CCBA。

masterCode是在另一种方法中由随机生成的字符组成的字符串,不允许重复。

问题是:解决这个问题的好方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-18 13:20:36

例如,您确定sb是使用StringBuilder sb = new StringBuilder();初始化的吗?检查堆栈跟踪中的错误,它可能会显示sb为null。

在示例2中,行masterCode = masterCode.concat(Character.toString(c));附加您的字符。您需要首先设置masterCode = ""。根据医生们,此方法:

将指定的字符串连接到此字符串的末尾。

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

https://stackoverflow.com/questions/28010041

复制
相关文章

相似问题

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