打乱顺序输出字符串

kewei8976 2008-08-18 09:53:11
输入 "KASDFADFOAI"

输出 "ADASFKOAIDF"

请问怎么做最好,有几种方法,谢谢大家
...全文
168 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
import java.util.Random;

public class Test {

public static void main(String[] args) {
String str = "KASDFADFOAI";
System.out.println(confuse(str));
}

private static String confuse(String str) {
if(str == null || str.trim().length() == 0) {
return str;
}
char[] chs = str.toCharArray();
Random ran = new Random();
for(int i = 0, k = chs.length * 2; i < k; i++) {
int first = ran.nextInt(k) % chs.length;
char t = chs[first];
int second = ran.nextInt(k) % chs.length;
chs[first] = chs[second];
chs[second] = t;
}
return new String(chs);
}
}
  • 打赏
  • 举报
回复
你想要什么答案?
打乱顺序,有规律要求么。
都是随即输出,当然可能和你的答案不一样了。
kewei8976 2008-08-19
  • 打赏
  • 举报
回复
谢谢你们的回复,没有一个正确的!!
IceCraft 2008-08-18
  • 打赏
  • 举报
回复
public static void main(String[] args) {
String str = "ABCDEFG";
HashSet hs = new HashSet();
for(int i = 0; i < str.length(); i++){
hs.add(str.substring(i, i+1));
}
StringBuffer sb = new StringBuffer();
Iterator iter = hs.iterator();
while(iter.hasNext())
sb.append(iter.next());
System.out.println(sb.toString());
}
Leonhe2022 2008-08-18
  • 打赏
  • 举报
回复

import java.util.Random;

public class Test {

public String randString(String str) {
StringBuffer result = new StringBuffer();
int length = str.length();
char[] chars = str.toCharArray();
// 数组下标
int index = -1;
while (true) {
// 随机 生成 下标
index = new Random().nextInt(length);
// 是否为空
if (chars[index] != ' ') {
result.append(chars[index]);
// 全部获取完毕
if (result.length() == length) {
break;
}
// 置空
chars[index] = ' ';
} else
continue;
}
System.out.println(result);
return result.toString();
}

public static void main(String[] args) {
String str = "KASDFADFOAI";
// 测试 20次吧。。。。。。。。
for (int i = 0; i < 20; i++)
new Test().randString(str);
}
}





不说了 看代码。。。
kewei8976 2008-08-18
  • 打赏
  • 举报
回复
用SubString可以写吗?
IceCraft 2008-08-18
  • 打赏
  • 举报
回复
一个一个往hashset里塞,然后拿出来。
循环产生一个随机数(小于字符串长度),然后从字符串中截取这个随机数对应位置的字符加入一个list,最后拿出来。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧