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 作为输出,但是当我尝试使用“/”时,我什么也得不到。

您可以使用 splitparseInt

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