java - 在不使用 stringbuilder 或电动工具的情况下随机化和改组字符串
问题描述
我想在不使用任何数组、StringBuilder
或电动工具(为您工作的包或方法)和使用Math.random()
.
我下面的代码有效,但我不喜欢它,因为我不能使用字符串生成器或.append()
. 有人可以帮我修复它吗?
public class loopPrr
{
static String shuffle(int a) {
String s = "BaaBooDaaDoo";
StringBuilder sb = new StringBuilder(a);
for (int i = 0; i < a; i++) {
int r = (int)(s.length() * Math.random());
sb.append(s.charAt(r));
}
return sb.toString();
}
}
解决方案
如果我做对了,您可以简单地使用 String:
static String shuffle(int a) {
String s = "BaaBooDaaDoo";
String sb = "";
for (int i = 0; i < a; i++) {
int r = (int) (s.length() * Math.random());
sb += s.charAt(r);
}
return sb;
}
我建议更改“sb”变量的名称以避免误解。
推荐阅读
- java - 如何在 Java 中读取大文件(单个连续字符串)?
- ruby - 路由错误:没有路由匹配 [GET] "/api/v1/courts/by_coordinates/41.89400864"
- .net - DateSignedTabs 和 FullNameTabs 在绑定到表单字段时不起作用
- sql - 在关系数据库中选择主键的最佳实践,最聪明的解决方案是什么?
- python - 如何在 Google Cloud 上提供 REST API?
- mongodb - 在 MongoDB 中使用单个集合而不是多个集合有技术上的缺点吗?
- python - 如何在输出中添加数字
- bash - 从 ACR 中获取不以前缀开头的最新图像
- reactjs - 使用 `useState` 挂钩的 React 功能组件不会使用 ReactiveSearch 更新 onChange
- esp8266 - ESP8266 - 以编程方式设置 Wifi 凭证,然后检查它们是否有效,如果无效则更改它们(无需重置)