分析以下需求,并用代码实现:
(1)从键盘循环录入录入一个字符串,输入"end"表示结束
(2)将字符串中大写字母变成小写字母,小写字母变成大写字母,其它字符用"*"代替,并统计字母的个数
举例:
键盘录入:Hello12345World
输出结果:hELLO*****wORLD
总共10个字母
要想实现上述效果,可以使用String或者StringBuilder方法
代码中被注释部分是使用StringBuilder方法的实现方式
```java
import java.util.Scanner;
public class test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入任意字符串,并以“end”结尾:");
StringBuilder b = new StringBuilder();
while (true) {
b.append(sc.nextLine());
if (b.toString().endsWith("end")) {
b.delete(b.length() - 3, b.length());
System.out.println("输入结束!");
System.out.println("键盘录入:" + b);
break;
}
}
// StringBuilder d = new StringBuilder();
String d = "";
int cou = 0;
for (int i = 0; i < b.length(); i++) {
if (b.charAt(i) >= 'a' && b.charAt(i) <= 'z') {
// String str = String.valueOf(b.charAt(i));
// StringBuilder e = new StringBuilder(str.toUpperCase());
// d.append(e);
// cou++
char str = Character.toUpperCase(b.charAt(i));
d += str;
cou++;
} else if (b.charAt(i) >= 'A' && b.charAt(i) <= 'Z') {
// String str = String.valueOf(b.charAt(i));
// StringBuilder e = new StringBuilder(str.toLowerCase());
// d.append(e);
// cou++
char str = Character.toLowerCase(b.charAt(i));
d += str;
cou++;
} else {
// String str = String.valueOf(b.charAt(i));
// str = "*";
// d.append(str);
char str = '*';
d += str;
}
}
System.out.println("输出结果:" + d);
System.out.println("总共" + cou + "个字母");
}
}