【发布时间】:2016-04-15 04:20:09
【问题描述】:
我希望在一个字符串中切换 2 个随机字符。例如,如果我以“abcdef”开头,我希望计算机生成 2 个随机数,并切换 2 个字符。所以一个可能的结果可能是“afcdeb”。
【问题讨论】:
-
你试过的代码是什么?
标签: java string random swap chars
我希望在一个字符串中切换 2 个随机字符。例如,如果我以“abcdef”开头,我希望计算机生成 2 个随机数,并切换 2 个字符。所以一个可能的结果可能是“afcdeb”。
【问题讨论】:
标签: java string random swap chars
【讨论】:
您可以通过 StringBuilder 使用以下方法。
String string="Your String";
int length=string.length();
Random rand=new Random();
int one=0;
int two=0;
/*
generate two random indexes which are not equal to each other.
*/
while(length>=2 && one==two){
one=rand.nextInt(length);
two=rand.nextInt(length);
}
//use String builder and interchange the characeters.
StringBuilder builder=new StringBuilder(string);
builder.setCharAt(one,string.charAt(two));
builder.setCharAt(two,string.charAt(one));
String newString=builder.toString();
【讨论】:
生成0到(字符串长度-1)之间的随机数index1和index2
int index1= randomNumber1;
int index2= randomNumber2;
String str ="abcdef";
String charSwap1= str.substring(index1, index1+1);
String charSwap2= str.substring(index2, index2+1);
StringBuilder builder=new StringBuilder();
builder.append(str);
builder.replace(index1,index1+1,charSwap2);
builder.replace(index2,index2+1,charSwap1);
System.out.println(builder.toString());
【讨论】: