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

StringTokenizer数组

穆洋
2023-03-14

爪哇岛。所以我想输入一个整数数组,然后使用 StringTokenizer 打印出最大值。我知道如何使用整数来做到这一点,但是当我尝试使用数组时,字符串到 int 命令 (Integer.parseInt) 失败了 - 无法从 int 转换为 int[]。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        String strTmp;
        StringTokenizer strTok;
        while ((strTmp = in.readLine()) != null && strTmp.length() != 0) {
            strTok = new StringTokenizer(strTmp);

        int[] c;

        c = Integer.parseInt(strTok.nextToken());

        int max = 0;
        for (int i = 0; i < c.length; i++) {
            if (c[i] > max) {
                max = c[i];
            }
        }
        System.out.println(max);
    }
}
}

我该如何解决这个问题,或者我应该使用其他命令吗?

共有3个答案

黄弘盛
2023-03-14

< code > Integer . parse int(String)返回一个整数,而不是< code >整数数组。你必须将返回值存储在一个int变量中,比如

int i = Integer.parseInt(String);

您必须迭代整数数组并将其索引值设置为返回的整数值

for (int i = 0; i < c.length; i++) {
           c[i] = Integer.parseInt(strTok.nextToken());
            if (c[i] > max) {
                max = c[i];
            }
        }

希望这有帮助!

方安怡
2023-03-14
 int[] c;

 c = Integer.parseInt(strTok.nextToken());

您正在尝试将单个整数对象分配给int数组。

而是使用< code > int[index]= integer . parse int(strtok . nexttoken());

闻安宜
2023-03-14

您似乎对是否真的想要一个数组感到困惑。您正在解析一个值,但试图将该int分配给c,这是一个数组变量。您并不真正需要一个,因为您只需要记住当前最大值和您刚刚解析的值:

int max = Integer.MIN_VALUE;
while (strTok.hasMoreTokens()) {
    int value = Integer.parseInt(strTok.nextToken());
    if (value > max) {
        max = value;
    }
}

如果你真的想要一个数组,那么你需要在解析它们之前知道有多少个记号,这是很棘手的。

另一种方法是创建一个< code >列表

// First parse everything...
List<Integer> values = new ArrayList<>();
while (strTok.hasMoreTokens()) {
    values.add(Integer.parse(strTok.nextToken());
}

// Then you can find the maximum value in the list

我个人更喜欢第一种方法,如果你只需要找到最大值的话。

 类似资料:
  • 问题内容: 我有一个关于代码优化的问题(可以运行,但是太慢了……)。我正在阅读形式的输入 其中Xi,Yi是整数。我用于读取行,然后用于处理这些数字,如下所示: 问题在于,这种方法在处理大型数据集时似乎效率低下。您能否建议我做一些简单的改进(我听说可以使用一些整数分析int或regex)来提高性能?谢谢你的提示 编辑:也许我判断错了,必须在代码的其他地方进行一些改进… 问题答案: (更新的答案) 我

  • 我有以下代码,它将标记字符串以创建对象列表: 我预期的输出是 1#、#Jon#、#176 2#、#Jack#、#200 3#、#Jimmy#、#160 如果我把内部分界线更改为类似的东西,它会正常工作为什么会发生这种行为?

  • 我必须把句子中每个单词的第一个字符大写。第一个单词的第一个字符是大写的,句子只能以句号或问号结尾。然后我要数一数句子中每个单词的元音和辅音。 这是我的代码: 这个类名很奇怪,因为这是我计算机考试中问的一个问题。 程序在某种程度上正常工作,但由于某种原因,我在中的

  • 我有以下输入字符串: 这里有各种各样的错误:标题前面有“。”应该是ID后面的分隔符。作者姓名的最后两个字符出现在日期字段中,实际日期丢失。 我怎样才能纠正这些问题?

  • 代码段用于获取从文本文件中提取的一行文本,将其分离为单独的标记,并将每个标记存储在数组的索引中。起初我以为问题出在文本文件上,但是直接将字符串放入编辑器并不能解决这个问题。 使用字符串,如: 带分隔符的StringTokenizer对象返回前四个标记作为正确的字符串,但其余四个标记为null。 有趣的是,另一个字符串: “Gnollnonegeralany222taunttaunt” 鸡肉没有野兽

  • 问题内容: 我有一个应该在课程中使用StringTokenizer的字符串。我已经制定了如何实施该项目的计划,但是我找不到如何将每个字符都用作分隔符的参考。 基本上,我需要将一个字符串(例如“河马校园是聚会场所”)划分为每个字符的令牌,然后将它们与一组值进行比较,然后将一个特定的值交换出来。我知道如何做其他所有事情,但是分隔每个字符的分隔符是什么? 问题答案: 如果您真的想使用StringToke