题目描述:
分析以下需求,并用代码实现:
(1)从键盘循环录入一个字符串,直到所输入的字符串以"end"结尾,正式使用时字符串不包括"end"
(2)将字符串中大写字母变成小写字母,小写字母变成大写字母,其它字符用"*"代替,并统计字母的个数
举例:
键盘录入:Hello12345Worldend
输出结果:hELLO*****wORLD
10
输入
Hello12345Worldend
输出
hELLO*****wORLD
10
难度
中等
输入示例
Hello12345Worldend
输出示例
hELLO*****wORLD
10
代码展示:
/**
* (1)从键盘循环录入一个字符串,直到所输入的字符串以"end"结尾,正式使用时字符串不包括"end"
(2)将字符串中大写字母变成小写字母,小写字母变成大写字母,其它字符用"*"代替,并统计字母的个数
*/
import java.util.Scanner;
public class haha {
public static void main(String[] args) {
String s=end();
//System.out.println(s.replaceAll("end",""));
Cast(s.replaceAll("end", ""));//传参时直接剔除尾部的end
}
public static String end(){
StringBuffer str=new StringBuffer();
while(true){ //利用while循环,判断是否出现了end这个字符串
String a=new Scanner(System.in).next();
str.append(a);
if(str.indexOf("end")>=0){
break;
}
}
return str.toString();
}
public static void Cast(String s){
StringBuffer str=new StringBuffer(s);
int num=0;
for(int i=0;i<str.length();i++){
if(str.charAt(i)>='a'&&str.charAt(i)<='z'){
str=str.replace(i, i+1, str.substring(i,i+1).toUpperCase());
num++;
}
else if(str.charAt(i)>='A'&&str.charAt(i)<='Z'){
str=str.replace(i, i+1, str.substring(i,i+1).toLowerCase());
num++;
}
else{
str=str.replace(i, i+1, "*");
}
}
System.out.println(str.toString());
System.out.println(num);
}
}