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);
}
}
}
展开全部
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);
}
}
}
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);
}
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询