解题思路:
熟悉几个新的字符串方法的调用
注意事项:
* 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分
2 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复