java 中的分隔符
Delimiter in java
我正在尝试在 Java 中使用定界符,但它不起作用(标准白色 space 定界符有效)。
我的代码是这样的:
Scanner input = new Scanner(System.in);
System.out.println("Enter the first rational number seperated by '/':");
input.useDelimiter("/");
int numerator1 = input.nextInt();
int denominator1 = input.nextInt();
System.out.println(numerator1 + denominator1);
当我使用白色 space 分隔符时,我得到 12 作为输出,但是当我尝试使用“/”时,我什么也得不到。
您可以使用 split
和 parseInt
import java.util.*;
import java.io.*;
class delimiter {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter the first rational number seperated by '/':");
String[] parts = input.nextLine().split("/");
int numerator1 = Integer.parseInt(parts[0]);
int denominator1 = Integer.parseInt(parts[1]);
System.out.println(numerator1 + " " + denominator1);
}
}
输入/输出:
Enter the first rational number seperated by '/':
8/4
8 4
如果你想将两个数字相加,只需使用:
System.out.println(numerator1 + denominator1);
输出12
如果您(或阅读本文的其他人)想用另一个符号拆分,您可以使用
String[] parts = input.nextLine().split("\+");
如果你想拆分 (8+4)
两部分 用+
或[=27=分开]
String[] parts = input.nextLine().split("\*");
如果你想拆分 (8+4)
两部分 分开 *
我们需要对 +
和 *
使用 \
,因为它们是 special
正则表达式需要正确处理的
您还可以使用您希望拆分的任何其他符号 (just change the argument of the split() function and be careful if it is a special character or not)
希望对您有所帮助
原因是它还在等待更多的输入。 nextInt()
方法在遇到非数字输入时停止解析,丢弃其余的标记。这一行:
int numerator1 = input.nextInt();
从输入流中读取 8
和 /
,生成 8
的分子,但 4
仍在流中。 Scanner
还没有看到另一个 /
,所以它不知道下一个标记何时结束。它会阻塞。
如果你再输入一个 /
就可以了。
Enter the first rational number seperated by '/':
8/4/
12
我正在尝试在 Java 中使用定界符,但它不起作用(标准白色 space 定界符有效)。
我的代码是这样的:
Scanner input = new Scanner(System.in);
System.out.println("Enter the first rational number seperated by '/':");
input.useDelimiter("/");
int numerator1 = input.nextInt();
int denominator1 = input.nextInt();
System.out.println(numerator1 + denominator1);
当我使用白色 space 分隔符时,我得到 12 作为输出,但是当我尝试使用“/”时,我什么也得不到。
您可以使用 split
和 parseInt
import java.util.*;
import java.io.*;
class delimiter {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter the first rational number seperated by '/':");
String[] parts = input.nextLine().split("/");
int numerator1 = Integer.parseInt(parts[0]);
int denominator1 = Integer.parseInt(parts[1]);
System.out.println(numerator1 + " " + denominator1);
}
}
输入/输出:
Enter the first rational number seperated by '/':
8/4
8 4
如果你想将两个数字相加,只需使用:
System.out.println(numerator1 + denominator1);
输出12
如果您(或阅读本文的其他人)想用另一个符号拆分,您可以使用
String[] parts = input.nextLine().split("\+");
如果你想拆分 (8+4)
两部分 用+
或[=27=分开]
String[] parts = input.nextLine().split("\*");
如果你想拆分 (8+4)
两部分 分开 *
我们需要对 +
和 *
使用 \
,因为它们是 special
正则表达式需要正确处理的
您还可以使用您希望拆分的任何其他符号 (just change the argument of the split() function and be careful if it is a special character or not)
希望对您有所帮助
原因是它还在等待更多的输入。 nextInt()
方法在遇到非数字输入时停止解析,丢弃其余的标记。这一行:
int numerator1 = input.nextInt();
从输入流中读取 8
和 /
,生成 8
的分子,但 4
仍在流中。 Scanner
还没有看到另一个 /
,所以它不知道下一个标记何时结束。它会阻塞。
如果你再输入一个 /
就可以了。
Enter the first rational number seperated by '/':
8/4/
12