在Java中,如何随机一个数

Readaword.Repeatword.length()timesPickarandompositioniintheword,butnotthelastposition... Read a word.
Repeat word.length() times
Pick a random positioni in the word, but not the last position.
Pick a random postition j > i in the word.
Swap the letters at positions j and i
Print the word
展开
 我来答
雪飞潇潇
推荐于2016-04-06 · TA获得超过6275个赞
知道大有可为答主
回答量:1968
采纳率:91%
帮助的人:866万
展开全部
import java.util.Scanner;
public class ChangeWords {
public static void main(String[] args) throws Exception {
System.out.println("请输入一个大于2个字母长度的单词");
Scanner sc = new Scanner(System.in);
//Read a word.
String word = sc.nextLine();
int len = word.length();
//Repeat word.length() times
for (int x = 0; x < len; x++) {
//Pick a random positioni in the word, but not the last position.
int i =(int) (Math.random()*(len-1));
int j ;
while(true){
//Pick a random postition j  > i in the word.
j=(int) (Math.random()*len);
if(j>i){
break;//找到了满足条件的j 就可以跳出循环了
}
}

char[] cs  = word.toCharArray();//字符串转换成字符数组
//Swap the letters at positions j and i 
cs[i] = word.charAt(j);
cs[j] = word.charAt(i);
word = new String(cs);//用字符数组生成字符串
//System.out.println(word); //这句只是测试的时候用来检测每次交换后的结果
}
System.out.println(word);
}
}

输出测试

请输入一个大于2个字母长度的单词
hello
ollhe
更多追问追答
追问
我还想问一个问题,如何随机生成一个字符串~谢谢啦!
追答

随机字符串

下面举例把,生成小写字母a~z构成的字符串

public class RandomWord {
public static void main(String[] args) {
int min = 2;//表示随机字符串最少的长度,包括2位长度
int max = 8;//表示随机字符串最多的长度,包括8位长度                 //字符串的随机长度 
int sr = (int) (Math.random()*(max-min+1))+min;
String tempWord = "";
for (int i = 0; i < sr; i++) {
char y = (char) (Math.random()*26+'a');
tempWord+=y;
}
System.out.println(tempWord);
}
}

 ....这题都写几段代码了还没采纳啊

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式