java - 如何在多行输入中使用正则表达式
问题描述
/* 语言 Bit++ 中的语句是一个序列,由一个操作和一个变量 x 组成。该语句不带空格,即只能包含字符“+”、“-”、“X”。执行一个语句意味着应用它包含的操作。
操作 ++ 将变量 x 的值增加 1。
操作 -- 将变量 x 的值减 1。 */
import java.util.regex.*;
import java.util.Scanner;
public class Bit{
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
sc.nextLine();
int x = 0;
while(n-->0){
Pattern p1 = Pattern.compile("[+]{2}");
Matcher m1 = p1.matcher(sc.nextLine());
boolean b1 = m1.matches();
if(b1){
++x;
}else{
--x;
}
}
System.out.println(x);
}
}
对于输入
2
++x
- X
输出应该是 0 我的代码输出为 -2。
代码部队 282A。
解决方案
它写得很明智:
我有一个选择用正则表达式解决的问题。现在我有两个问题。
如果您不需要,请不要使用正则表达式:
while (n-->0) {
if (sc.nextLine().contains("++")) {
++x;
} else {
--x;
}
}
推荐阅读
- java - 如何确定哈希表中的一对值是否满足条件?
- scala - 如何在Scala的两列之间使用运算符LIKE?
- c# - 如何从下拉菜单中获取数据并传递给弹出对话框?[布雷泽]
- flutter - 如何布局一列按钮的宽度等于 Flutter 中最宽的按钮的宽度?
- python - 如何从列表中的多个 URL 中抓取和提取相同的特定信息
- javascript - Jquery不允许访问同一类中的构造函数或函数
- reactjs - react i18n - 函数作为 React 子级无效
- flutter - 运行颤振 2.2.3 时缺少 FacebookAuth
- python-3.x - 有没有办法在 Google colab 中观察创建的变量?
- c++ - `vaddhn_high_s16` 实际上做了什么?