首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >StringTokenizer阵列

StringTokenizer阵列
EN

Stack Overflow用户
提问于 2013-12-01 11:40:15
回答 3查看 3K关注 0票数 0

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

代码语言:javascript
复制
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);
    }
}
}

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-12-01 11:44:33

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

代码语言:javascript
复制
int max = Integer.MIN_VALUE;
while (strTok.hasMoreTokens()) {
    int value = Integer.parseInt(strTok.nextToken());
    if (value > max) {
        max = value;
    }
}

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

另一种选择是创建一个List<Integer>

代码语言:javascript
复制
// 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

就我个人而言,如果您只需要找到最大值,我更喜欢第一种方法。

票数 1
EN

Stack Overflow用户

发布于 2013-12-01 11:44:08

代码语言:javascript
复制
 int[] c;

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

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

相反,使用int[index] = Integer.parseInt(strTok.nextToken());

票数 0
EN

Stack Overflow用户

发布于 2013-12-01 11:44:20

Integer.parseInt(String)返回一个整数,而不是一个Integer array。必须将返回值Integer存储在int变量中,如下所示

代码语言:javascript
复制
int i = Integer.parseInt(String);

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

代码语言:javascript
复制
for (int i = 0; i < c.length; i++) {
           c[i] = Integer.parseInt(strTok.nextToken());
            if (c[i] > max) {
                max = c[i];
            }
        }

希望这能有所帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20311712

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档