解题思路:
熟悉几个新的字符串方法的调用
注意事项:

 * indexOf() 方法有以下四种形式:

 * public int indexOf(int ch): 返回指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。

 * public int indexOf(int ch, int fromIndex): 返回从

 * fromIndex位置开始查找指定字符在字符串中第一次出现处的索引,

 * 如果此字符串中没有这样的字符,则返回 -1。

 *

 * int indexOf(String str): 返回指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。

 * int indexOf(String str, int fromIndex): 返回从

 * fromIndex位置开始查找指定字符在字符串中第一次出现处的索引,

 * 如果此字符串中没有这样的字符,则返回 -1。

 *

 *

 * substring()方法如下:

 * startIndex - 开始处的索引(包括)。

 * endIndex - 结束处的索引(不包括)。

 * str=str.substring(int startIndex);截取掉str从首字母起长度为startIndex的字符串,将剩余字符串赋值给str;

 * str=str.substring(intstartIndex,intendIndex);截取str中从startIndex开始至endIndex结束时的字符串,并将其赋值给str;



参考代码:

public class Seq1073 {

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);

        int right = 0;// 记录正确题目的数量


        while (input.hasNext()) {

            String str = input.nextLine();// 获取整行的输入数据


            // 依次对应三个数

            int a;

            int b;

            int c;


            // 调用indexOf()方法,判读题目结果是否为"?",此处也可以用charAt()方法转化为char类型依次判断,但大大增加代码长度

            if (str.indexOf("?") == -1) {// 如果字符串中没有"?"的情况

                int addIndex = str.indexOf("+");// 获取字符串中+的下标,如果没有则返回为-1

                int equalIndex = str.indexOf("=");// 获取字符串中=的下标

                int temp = 0;// 记录正确的答案

                c = Integer.valueOf(str.substring(equalIndex+1, str.length()));

                if (addIndex != -1) {// 如果是加法的情况

                    a = Integer.valueOf(str.substring(0, addIndex));// 获取+前的字符串,并将其转换为Integer

                    b = Integer.valueOf(str.substring(addIndex+1, equalIndex));//注意下标问题,不要读取到正负号!!!

                    temp = a + b;

                } else {// 减法的情况

                    int subtractIndex = str.indexOf("-");// 获取字符串中-的下标,如果没有则返回为-1

                    a = Integer.valueOf(str.substring(0, subtractIndex));// 获取-前的字符串,并将其转换为Integer

                    b = Integer.valueOf(str.substring(subtractIndex+1, equalIndex));//再次强调:注意下标问题,不要读取到正负号!!!

                    temp = a - b;

                }


                if(temp == c){

                    right++;

                }

            }

        }


        System.out.println(right);

    }

}


点赞(0)
 

0.0分

2 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论