gpt4 book ai didi

Java 三种类型的分割输入,读取直到特殊字符/文件结尾

转载 作者:行者123 更新时间:2023-12-01 10:28:34 25 4
gpt4 key购买 nike

我正在学习解析输入的基本技术。

第一个给定一个整数N,读取N行,每行包含一些信息。第二个读取直到特殊字符 (0)。第三个是读取直到文件末尾。每行信息的输出将为 1 或 0。

感谢 ctst 的回答,我编辑了处理每一行输入的方法:

public static void compareAnd(String a, String b) {
if (a.equals("1") && b.equals("1")) {
System.out.println("1");
} else{
System.out.println("0");
}
}

public static void compareOr(String a, String b) {
if (a == "0" && b == "0") {
System.out.println("0");
} else {
System.out.println("1");
}
}

我不知道如何读取直到特殊字符(0)并读取到文件末尾...

我尝试对第二种输入类型执行此操作:

        case 2:
int counter = 0;
while (!sc.nextLine().equals("0")) {
counter += 1;
}
String[][] a2D = new String[counter][3];
for (int i = 0; i < counter; i++) {
for (int j = 0; j < 3; j++) {
a2D[i][j] = (String)sc.next();
}
}
for (int r = 0; r < a2D.length; r++) {
if (a2D[r][0].equals("AND")) {
compareAnd(a2D[r][1], a2D[r][2]);
} else {
compareOr(a2D[r][1], a2D[r][2]);
}
}
break;

我想创建一个二维数组来处理输入。但是,由于只有当用户输入“0”时输入才会停止,因此我不知道数组的行数。另外,当我执行上面的代码时没有任何输出...虽然我输入了0。

示例输入:

2
AND 1 1
OR 1 0
AND 1 0

输出:

1
1
0

最佳答案

注意==equals的区别。第一个检查是否是同一个对象(因为 String 不是基元,因此对于例如 "a"==StringWithValuea 会产生 false .equals 比较两个对象(对于字符串,如果值相同)。尝试将 == 更改为 equals (并且 !=!.equals) 并告知错误是否仍然存在。

针对你的第一种情况:你为什么不直接写:

public static void compareAnd(String a, String b) {
if (a.equals("1") && b.equals("1")) {
System.out.println("1");
}
else{
System.out.println("0");
}
}

关于Java 三种类型的分割输入,读取直到特殊字符/文件结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35219707/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com