java - 为什么我的 Java StringTokenizer 读取空空间?

标签 java

我编写了这个程序,该程序仅在存在大于号或冒号时才分解字符串。例如,当我输入“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/

相关文章:

java - 在线程中抛出错误(异常)

java - 如何从显示中删除字符串

java - 如何使用字体的 "others versions"?

java - 尝试从 Array.asList 返回的列表中删除时出现 UnsupportedOperationException

java - java/android中如何检查字符串值是否属于UUID?

java - 将 Android 应用程序连接到 PC

java - 如何将长本地时间戳转换为字符串 UTC 时间戳

java - 动态 JPA 连接

java - 定义一个采用映射中参数的方法

java - spring 应用程序未在对象上找到属性