java随机生成20个长度为12-20的大小写字母混杂的“单词”,按字典顺序进行输出

java随机生成20个长度为12-20的大小写字母混杂的“单词”,按字典顺序进行输出

字母的字典顺序:大写字母小于小写字母

  'A'~ 'Z'对应ASCII值:65~90 


 'a'~'z'对应ASCII值:97~122

程序运行截图:

1随机生成一个长度为12-20的大小写字母混杂的“单词”

/**
 * 随机获取长度为12~20的大小写字母混杂的“单词”
 */
private String randomWord() {
// 12~20长度,包含12及20
int length = 12 + (int) (Math.random() * 9);
String word = "";
for (int i = 0; i < length; i++) {
word += (char) randomChar();
}
return word;
}
/**
 * 随机获取'a'~'z' 和 'A'~ 'Z'中的任一字符
 * 
 * 'A'~ 'Z'对应ASCII值:65~90
 * 
 * 'a'~'z'对应ASCII值:97~122
 * 
 * @return
 */
private byte randomChar() {
// 0<= Math.random()< 1
int flag = (int) (Math.random() * 2);// 0小写字母1大写字母
byte resultBt;
if (flag == 0) {
byte bt = (byte) (Math.random() * 26);// 0 <= bt < 26
resultBt = (byte) (65 + bt);
} else {
byte bt = (byte) (Math.random() * 26);// 0 <= bt < 26
resultBt = (byte) (97 + bt);
}
return resultBt;
}

2.for循环生成20个长度为12-20的大小写字母混杂的“单词”

3.按字典顺序进行排序

/**
 * 
 * 由小到大排序
 * 
 * 从后向前冒泡
 * 
 * @param arr
 */
public void bubbleSort(String[] arr) {
if (arr == null || arr.length == 0)
return;
for (int i = 0; i < arr.length - 1; i++) {
// 循环之后下标i处为数组中最小的元素
for (int j = arr.length - 1; j > i; j--) {
if (!compareString(arr[j], arr[j - 1])) {
swap(arr, j - 1, j);
}
}
}
}
/**
 * 比较两个字符串大小
 * 
 * @param param1
 * @param param2
 * @return true:param1 > param2 false:param1 <= param2;
 */
private boolean compareString(String param1, String param2) {
char[] paramC1 = param1.toCharArray();
char[] paramC2 = param2.toCharArray();
// 获取最短字符串长度
int minLength = paramC1.length < paramC2.length ? paramC1.length
: paramC2.length;
for (int i = 0; i < minLength; i++) {
if (paramC1[i] == paramC2[i]) {

} else if (paramC1[i] > paramC2[i]) {
return true;
} else {
return false;
}
}
return paramC1.length > paramC2.length;

}
/**
 * 交换元素
 * 
 * @param arr数组
 * @param i
 *            数组下标
 * @param j
 *            数组下标
 */
public void swap(String[] arr, int i, int j) {
String temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}

4.测试类

public class StringDemo {

public static void main(String[] args) {
StringDemo localDemo = new StringDemo();
String[] words = new String[20];
System.out.println("随机生成的20个单词:");
for (int i = 0; i < words.length; i++) {
words[i] = localDemo.randomWord();
System.out.println(words[i]);
}
localDemo.bubbleSort(words);
System.out.println();
System.out.println("按字典顺序打印:");
for (String word : words) {
System.out.println(word);
}
}
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2016-05-14
package www;

public class Test6_5_2 {

public static void main(String[] args) {
// TODO 自动生成的方法存根
int origin1=65;
int end1 =90;
int origin2=97;
int end2=122;
int irand1 = (int)(Math.random()*( end1 - origin1 ));
int irand2 = (int)(Math.random()*( end2 - origin2 ));
irand1 += origin1;
irand2 += origin2;
int suiji=(int)(Math.random()*3);
if(suiji<=1){
System.out.println("输出随机字母:"+irand1);
}else{
System.out.println("输出随机字母:"+irand2);
}
}

}本回答被网友采纳

C++随机生成20个长度为12-20的大小写字母混杂的“单词”,按字典顺序...
include <iostream>#include <string>#include using namespace std;void randWord(string & word) {\/\/ rand() % 9 的取值范围是 0~8\/\/ 所以 12 + rand() % 9 的取值范围就是12~20int len = 12 + rand() % 9;word.assign(len, '\\0');\/\/ 给“单词”的每一个字母赋值for(int i...

java随机生成20个长度为12-20的大小写字母混杂的“单词”,按字典顺序...
1随机生成一个长度为12-20的大小写字母混杂的“单词”\/** * 随机获取长度为12~20的大小写字母混杂的“单词” *\/private String randomWord() {\/\/ 12~20长度,包含12及20int length = 12 + (int) (Math.random() * 9);String word = "";for (int i = 0; i < length; i++) {wo...

java编程:输入n,输入n个英文单词,对这n个单词以字典序排序,最后予以输 ...
public class OrderWord { public static void main(String[] args) { Scanner sc=new Scanner(System.in);List<String> li=new ArrayList<String>();System.out.println("输入一个整数:");int n;n=sc.nextInt();System.out.println("输入"+n+"个单词:");for(int i=0;i<n;i++){ ...

JAVA按着字典顺序排序
package com.play;public class Decimal2Binary { public static void main(String[] args){ String [] strArray = new String[]{"red","yellow","Black","Green"};String t = null;System.out.println("排序前");for(String s : strArray)System.out.print(s+"\\t");int i,j,k;for...

MD5是如何编译的?
我想这是Java对我来说的一个非常重要的魅力吧。MD5算法说明 一、补位 二、补数据长度 三、初始化MD5参数 四、处理位操作函数 五、主要变换过程 六、输出结果 补位:MD5算法先对输入的数据进行补位,使得数据位长度LEN对512求余的结果是448。即数据扩展至K*512+448位。即K*64+56个字节,K为整数...

java按字典顺序重新排列怎么理解?两个不同的英文字母字符串,按照字符串...
第一个字母 比如:abcd和bcde会比较‘a'和’b‘如果第一个字母一样 abcd和acde会比较第二个’b‘和’c‘如果一直一样就一直比下去,直到两个不一样的出现,进行排序 如果长度一样,且对应字符一样,那么这两个字符串就是相等的

输入5种水果的英文名称,用java编写一个程序,输出这些水果名称按照字典出 ...
一、思路:1、建立一个String数组,用来存储用户输入的水果名字。2、按字典出现的先后顺序即比较字符串大小。可以使用到String对象的compareTo()方法。3、对比大小后,升序输出。二、实现:1、定义输入水果名字的个数,用来确定数组的大小,修改此值可以修改数组的大小。2、用户输入,用循环实现接收,并...

...从键盘输入N个字符串,将字符串按从小到大的顺序排列并输出...
如果是C #或者Java就简单了,将输入的字符串保存到数组中,然后使用Aarry.Sort(arrString);参数为数组变量,这样就排好序了,Java的也有个类似的方法,

java编写程序将一个字符串数组按字典顺序重新排列中,求交换两字符串的...
把字符串转换成字符数组 ,比较数组[0]的大小就可以了 char可以隐式转换成int 直接比就可以了

JAVA怎么样把词语按顺序字母排列
public class SreachC { public static void sort(String[] list){ int len = list.length;String temp = null;for( int i = 0; i < len - 1; i++){ for( int j = 0; j < len - 1 - i; j++){ if((list[j].compareTo(list[j + 1])) > 0){ temp = list[j];lis...

相似回答