【问题标题】:How to scan a line of 2 numbers separated by a space and assign each digit of each number to an int?如何扫描由空格分隔的 2 个数字的行并将每个数字的每个数字分配给一个 int?
【发布时间】:2015-03-23 03:17:45
【问题描述】:

基本上,我有一个文件,其中包含几行类似于此的数字:

4450 137

123679 5886

5448103 548913

我正在编写一个程序来获取每个数字,分离其中的每个整数,将它们放入双向链表,然后将它们相加。

我遇到的问题是我不确定如何使用第一行,将第一个数字中的数字分开,然后将第二个数字中的数字分开,用它们做我需要的事情,然后回来对第二行执行相同的操作,依此类推。输出如下所示:

4450 + 137 = 4587

123679 + 5886 = 129565

...等等。

到目前为止,我已经...

Scanner scan = new Scanner(new File("input.txt"));
int num1;
int num2;

    while (scan.hasNext()) // While there are still things to scan
    {               
        num = scan.nextInt();

        while(num%10 !== 0)
        {
            tempNum = num % 10;
            linkList.add(tempNum);
            num = num/10;
        }
    }

感谢任何帮助!

【问题讨论】:

  • 我想我误解了你原来的问题。您基本上需要将给定行上的所有数字相加吗?
  • 从我认为你正在尝试做的事情来看,你需要使用正则表达式。另一种方法是使用Scanner.nextInt();
  • @Harvtronix,在你删除之前我看到了你的答案(我认为是你的),你所说的正是我所需要的。
  • 哦好的酷我会重新添加然后哈哈

标签: java parsing int java.util.scanner


【解决方案1】:

我的思考过程是这样的:

  • 从扫描仪中获取一个整数
  • 进入提取每个数字的循环
  • 将这些数字中的每一个都放入您的列表中
  • 继续这样做,直到你的数字用完
  • 从扫描仪中获取下一个整数

如何提取每个数字?

如果您的号码是 12305,那么您可以通过执行 12305 % 10 去除 5,这将返回 5。然后您通过执行 12305 / 10 ( = 1230) 丢弃该 5 并将该结果存储到下一次你循环。

你怎么知道你的数字用完了?

如果你存储的数字 / 10 给你零,那么你就完成了这个 int。

内循环示例:

while(num != 0) {
  singleDigit = num % 10;
  ...
  num = num / 10;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-20
    • 1970-01-01
    • 2016-08-25
    • 1970-01-01
    • 2020-06-10
    • 1970-01-01
    • 1970-01-01
    • 2014-02-17
    相关资源
    最近更新 更多