我编写了这个程序,该程序仅在存在大于号或冒号时才分解字符串。例如,当我输入“cars:ford> chevy”时,输出会在 > 和“chevy”之间给出空格,然后是“chevy”一词。我如何防止它给我那个空格?我想要的只是单词,这是我的代码。
import java.util.Scanner;
import java.util.StringTokenizer;
public class wp{
public static void main(String[]args){
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter words");
String ingredients = keyboard.nextLine();
StringTokenizer str = new StringTokenizer(ingredients,">:");
while(str.hasMoreTokens()){
System.out.println(str.nextToken());
}
}
}
最佳答案
由于空格是输入的一部分,因此分词器返回它是有效的(考虑一下您想要对空格使用react的情况)。
因此,您需要做的就是对分割结果进行后处理,例如:
public class Main {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter words");
String ingredients = keyboard.nextLine();
StringTokenizer str = new StringTokenizer(ingredients, ">:");
while (str.hasMoreTokens()) {
String nextToken = str.nextToken();
String trimmed = nextToken.trim();
System.out.println(trimmed);
}
}
}
关于java - 为什么我的 Java StringTokenizer 读取空空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48639233/