A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

问题在图片上,下面是今天自己做的答案:
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


001514z1njv0721o124grn.jpg (64.09 KB, 下载次数: 5)

001514z1njv0721o124grn.jpg

2 个回复

倒序浏览
你们做题思路都是怎么来的
回复 使用道具 举报
mrwalker 发表于 2017-3-17 09:11
你们做题思路都是怎么来的

敲得的多了就有思路了{:8_470:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马