当前位置: 首页 > 知识库问答 >
问题:

使用字符串标记器在不同行上获取输入

常海
2023-03-14
5
2 3 2 2 3
import java.util.*;
import java.io.*;
public class FindDistinct {

    public static void main(String[] args) throws IOException {
        
        BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
        PrintWriter pw = new PrintWriter(System.out);
        StringTokenizer st = new StringTokenizer(r.readLine());
        int n = Integer.parseInt(st.nextToken());
        HashSet<Integer> set = new HashSet<Integer>();
        
        for (int i = 0; i < n; i++) {
            set.add(Integer.parseInt(st.nextToken()));
        }
        
        pw.println(set.size());
        pw.close();
        r.close();
        
    }

}

Exception in thread "main" java.util.NoSuchElementException
    at java.base/java.util.StringTokenizer.nextToken(StringTokenizer.java:348)
    at FindDistinct.main(FindDistinct.java:16)

共有1个答案

岳正阳
2023-03-14

从Javadoc forStringTokenizer:

  • {@code StringTokenizer}是一个遗留类,由于兼容性原因而保留,尽管不鼓励在新代码中使用它。建议任何寻求此功能的人使用{@code String}的{@code split}方法或java.util.regex包。

但是您的问题是您只从缓冲读取器中读取一行,因此您的标记器只有一个标记,但是您会尝试从中读取下一个n标记。

 类似资料:
  • 当我在Jsp程序中使用属性自定义标记时,出现了一些错误: Servlet。路径为[/Tag]的上下文中servlet[jsp]的service()引发了具有根本原因java的异常[无法编译jsp类]。lang.NumberFormatException:用于输入字符串:“标记” 细节如下: 标签jsp tag.tld 日期标签。JAVA

  • 我使用StringTokenizer将字符串分成标记,但是每当出现在中间而没有任何时,就跳过它并取下一个标记 实际产出 想要的Outupt

  • 我用了这段代码并运行,但没有输出出来不知道为什么? 但如果正在使用s=“”;则也没有输出。 但是当我使用s=“”;那么输出就来了,为什么会这样呢?

  • 首先,我这样做没有从用户那里获得长度。这是: 现在我尝试从用户那里获取输入长度。这是: 这显示了“cout(ing)”“ptr”时输出中的一些奇怪的东西,我不知道是什么!如果这是错误的,我怎么也可以从用户那里获取输入?如果我编辑第一个程序,那么我不能获取输入,直到执行这一行“str=new char[];”。并且长度只能在这一行中给出。并且长度只能在获取字符串之前给出。

  • 问题内容: 我有一个文本文件,其中包含用’|’分隔的数据。我需要获取每个字段(以“ |”分隔)并对其进行处理。文本文件可以显示如下: ABC | DEF || FGHT 我正在使用字符串令牌生成器(JDK 1.4)来获取每个字段值。现在的问题是,我应该在DEF之后得到一个空字符串,但是我没有在DEF和FGHT之间得到空白。 我的结果应该是 -ABC,DEF,“”,FGHT, 但我正在获取 ABC,

  • 问题内容: 我正在制作一个应用程序,在某个时候我需要用户选择一种颜色,但是不仅有50个radioButtons,我想知道是否有可能从文本字段或其他内容中真正获得他们想要的颜色。 问题答案: 仅仅制作一个JComboBox或类似的东西会更容易吗? 但是要回答您的问题:是的,有可能。我将提供一段代码,您可以将其用作入门(假设您仍然希望为字符串上色)