API的练习之作业题
难度系数:*****
/第二题:分析以下需求,并用代码实现
1.定义String getStr()方法
功能描述:
获取长度为5的随机字符串,字符串由随机的5个大小写字母组成
2.在main方法中调用上述方法,并打印结果/
/大写:65-90
小写:97-122/
import java.util.Random;
public class randomStr {
public static void main(String[] args) {
//调用方法
String str = getStr();
//输出
System.out.println(str);
}
public static String getStr() {
//构造StringBuilder对象
StringBuilder sb = new StringBuilder();
Random r = new Random();
while (true) {
if (sb.length() == 5) {
//控制字符串长度为5
break;
} else {
//随机生成65-122的随机数
int a = r.nextInt(58) + 65;
//判断生成的随机数在不在大写和小写字母范围内
if ((a >= 65 && a <= 90) || (a >= 97 && a <= 122)) {
//将数字转换成相应的字母
char cc = (char) a;
//然后将字符添加到sb中
sb.append(cc);
} else {
continue;
}
}
}
String s = sb.toString();
return s;
}
}
/第三题: 分析以下需求,并用代码实现
1.键盘录入一个字符串
2.将该字符串变成字符数组(不能使用toCharArray()方法)
3.将字符数组中的所有大写字母变成小写字母(不能使用toLowerCase()方法)
4.如果第一位和最后一位的内容不相同,则交换
5.将字符数组中索引为偶数的元素变成’~’
6.打印数组元素的内容/
public class StringToArray {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串");
String line = sc.nextLine();
char[] ch = new char[line.length()];
//将该字符串变成字符数组(不能使用toCharArray()方法)
StringToArray(line, ch);
//打印数组
printArray(ch);
//将字符数组中的所有大写字母变成小写字母(不能使用toLowerCase()方法)
HighToLower(ch);
//打印数组
printArray(ch);
//如果第一位和最后一位的内容不相同,则交换
changeArray(ch);
//打印数组
printArray(ch);
//将字符数组中索引为偶数的元素变成'~'
changeDouble(ch);
//打印数组
printArray(ch);
}
public static void StringToArray(String line, char[] ch) {
for (int i = 0; i < line.length(); i++) {
ch[i] = line.charAt(i);
}
}
public static void HighToLower(char[] ch) {
for (int i = 0; i < ch.length; i++) {
//首先判断是不是大写字母
//将字符转成对应的数字
int a = (int) ch[i];
if (a >= 65 && a <= 90) {
//转换成小写字母对应的数字
a = a + 32;
//把数字转换成小写字母并存入数组
ch[i] = (char) a;
} else {
//不是大写字母
continue;
}
}
}
public static void changeArray(char[] ch) {
//如果最后一个元素和第一个不相同,就交换
if (ch[0] != ch[ch.length - 1]) {
char temp = ch[0];
ch[0] = ch[ch.length - 1];
ch[ch.length - 1] = temp;
}
}
public static void changeDouble(char[] ch) {
//遍历数组,判读偶数位,将偶数位置元素更换为〜
for (int i = 0; i < ch.length; i++) {
if (i % 2 == 0) {
ch[i] = '~';
}
}
}
public static void printArray(char[] ch) {
StringBuilder sb = new StringBuilder();
sb.append("[");
for (int i = 0; i < ch.length; i++) {
if (i == ch.length - 1) {
sb.append(ch[i]);
} else {
sb.append(ch[i] + ", ");
}
}
sb.append("]");
System.out.println(sb.toString());
}