问题在图片上,下面是今天自己做的答案:
import java.util.Scanner;
public class Problem1 {
public static void main(String[] args) {
//定义一个计数器
int count =0;
//定义两个接收字符串的对象
StringBuffer sb = new StringBuffer();
StringBuffer sb1 = new StringBuffer();
//创建键盘录入对象
Scanner sc=new Scanner(System.in);
//整行录入
String str = sc.nextLine();
//如果不是一"end"结尾就 继续录入
while(!str.endsWith("end")){
//把字符串变为字符数组
char[] arr = str.toCharArray();
//循环判断并对字符进行改变
for(int i=0;i<arr.length;i++){
if(arr[i]>=65&&arr[i]<=90){
arr[i]=(char)(arr[i]+32);
//是字母count加一
count++;
}else if(arr[i]>=97&&arr[i]<=122){
arr[i]=(char)(arr[i]-32);
//是字母count加一
count++;
}else{
arr[i]='*';
}
//把改变后的字符用sb对象接收拼接
sb.append(arr[i]);
}
//用sb1对象接收每行改变后的字符串
sb1.append(sb.toString());
//清空sb防止字符重复
sb.delete(0, (arr.length));
//再次录入下一行字符串,到while处判断
str = sc.nextLine();
}
//打印最后的结果
System.out.println(sb1.toString());
//打印字母个数
System.out.println("共"+count+"个字母");
//------------------------------------------------------------------------------------------------------
//定义两个字符串
String str1 = "qwxoerxotyuxoiopxo";
String str2 = "xo";
//调用deleteSubString();
Object[] arr = deleteSubString(str1,str2);
System.out.println("\""+str1+"\""+"去掉"+"\""+str2+"\""+"后得到的字符串:"+(String)arr[0]);
System.out.println("去掉的"+"\""+str2+"\""+"个数是:"+arr[1]);
//关闭流
sc.close();
}
//定义deleteSubString方法
private static Object[] deleteSubString(String string, String string2) {
StringBuffer sb = new StringBuffer();
int count ;
String[] arr = string.split("xo");
if(string.endsWith("xo")){
count = arr.length;
}else{
count = arr.length-1;
}
for(int i =0;i<arr.length;i++){
sb.append(arr[i]);
}
Object[] arry = {sb.toString(),count};
return arry;
}
}
下面是运行结果:
Hello12345World
end
hELLO*****wORLD
共10个字母
"qwxoerxotyuxoiopxo"去掉"xo"后得到的字符串:qwertyuiop
去掉的"xo"个数是:4
|
|