Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java正在将.txt文件读取到数组_Java_Arrays_File_Text - Fatal编程技术网

Java正在将.txt文件读取到数组

Java正在将.txt文件读取到数组,java,arrays,file,text,Java,Arrays,File,Text,我一整天都在努力锻炼这项运动,但一点运气都没有。提前感谢您的帮助 问题出在这里 您要实现的方法是将每个整数存储在一个数组中 数字的个数,每个数组元素一个数字。我们将使用数组 长度为50,因此我们将能够存储多达50位的整数 长的我们必须小心如何存储这些数字。考虑 例如,存储数字38423和27。如果我们把这些储存在 数组的“前”部分,每个数字的前导位数为 数组的索引0,然后当我们将这些数字相加时, 我们可能会这样添加它们: 38423 二十七 为了模拟值的右移,我们将每个值存储为 正好有50个数字

我一整天都在努力锻炼这项运动,但一点运气都没有。提前感谢您的帮助

问题出在这里

您要实现的方法是将每个整数存储在一个数组中 数字的个数,每个数组元素一个数字。我们将使用数组 长度为50,因此我们将能够存储多达50位的整数 长的我们必须小心如何存储这些数字。考虑 例如,存储数字38423和27。如果我们把这些储存在 数组的“前”部分,每个数字的前导位数为 数组的索引0,然后当我们将这些数字相加时, 我们可能会这样添加它们:

38423

二十七

为了模拟值的右移,我们将每个值存储为 正好有50个数字的序列,但我们允许数字 领先0。例如,上述问题转化为:

0000000000000000000038423

0000000000000000000000027

现在柱子排好了,我们有足够的空间 在前面的情况下,我们甚至有更长的数字添加到这些

程序的数据将存储在名为sum.txt的文件中。 输入文件的每一行都有不同的添加问题 你需要解决这个问题。每行将有一个或多个要相加的整数 在一起在写这篇文章的最后,看一下输入文件 以及你应该产生的产出。请注意,您生成了一个 每个输入行的输出行,显示您要添加的问题 正在解决的问题及其答案。您的输出还应在 结束处理了多少行输入。你必须准确地复制 这个输出

您应该使用第6章中描述的技术打开文件, 逐行阅读,并处理每行的内容。在里面 读取这些数字时,您将无法将其读取为整数或长整数 因为它们中的许多太大,无法存储在int或long中。所以 您必须使用对该方法的调用将它们作为字符串值读取 next()。那么,您的第一个任务就是转换一串数字 一个50位数的数组。如上所述,您将需要转换 右边的数字,包括前面的前导0。弦 方法charAt和方法Character.getNumericValue将非常有用 为了解决这部分问题

你要把每一行数字相加,这意味着 编写一些代码,允许您将其中两个添加到一起 或将其中一个添加到另一个。这是你想要的东西 在小学里学会了从正确的开始添加,保持 跟踪是否有一个数字从一列传送到另一列 下一个你在这里面临的挑战是采取一个你熟悉的过程 使用和编写执行相应任务的代码

您的程序还必须写出这些数字。在这样做的时候,它应该 不打印任何前导0。即使储存这些物品很方便 在内部使用前导0进行编号,读取您的输出的人将 而是在没有任何前导0的情况下查看这些数字

您可以假设输入文件中的数字为50或更少 数字,并且答案总是50位数或更少。注意, 然而,你必须处理一个人 数字可能是0,或者答案可能是0。不会有负面影响 输入文件中的整数

您应该使用正好是50位的数组来解决这个问题 长的某些bug可以通过将数组拉伸到某个位置来解决 比如51位,但不需要这样做,你会 如果您的阵列需要超过50位数字,则会丢失样式点

数字的位数选择50是任意的(一个魔术) 所以您应该引入一个您使用的类常量 自始至终,这将使修改代码以进行操作变得容易 不同的位数

将输入文件视为您的问题类型的一个示例 程序必须解决这个问题。我们可能会使用一个更复杂的输入文件来进行实际操作 分级

Java类库包括名为BigInteger和 BigDecimal使用与我们要求您使用的策略类似的策略 在本程序中实现。不允许你解决这个问题 使用BigInteger或BigDecimal。您必须使用 数字

您的程序应该存储在名为Sum.java的文件中

输入文件sum.txt

82384
204 435
22 31 12
999 483
28350 28345 39823 95689 234856 3482 55328 934803
7849323789 22398496 8940 32489 859320
729348690234239 542890432323 534322343298
3948692348692348693486235 5834938349234856234863423
999999999999999999999999 432432 58903 34
82934 49802390432 8554389 4789432789 0 48372934287
0
0 0 0
7482343 0 4879023 0 8943242
3333333333 4723 3333333333 6642 3333333333
应该产生的输出

82384=82384
204 + 435 = 639
22 + 31 + 12 = 65
999 + 483 = 1482
28350 + 28345 + 39823 + 95689 + 234856 + 3482 + 55328 + 934803 = 1420676
7849323789 + 22398496 + 8940 + 32489 + 859320 = 7872623034
729348690234239 + 542890432323 + 534322343298 = 730425903009860
3948692348692348693486235 + 5834938349234856234863423 = 9783630697927204928349658
999999999999999999999999 + 432432 + 58903 + 34 = 1000000000000000000491368
82934 + 49802390432 + 8554389 + 4789432789 + 0 + 48372934287 = 102973394831
0 = 0
0 + 0 + 0 = 0
7482343 + 0 + 4879023 + 0 + 8943242 = 21304608
3333333333 + 4723 + 3333333333 + 6642 + 3333333333 = 10000011364
总行数=14

到目前为止我的代码

公共类总和{
公共静态void main(字符串args[])引发FileNotFoundException{
File File=新文件(“sum.txt”);
  Scanner scanner = new Scanner(file);
    int[][] myInts = new int[wordSize][];
    int mySpot = 0;
    while (scanner.hasNextLine()) {
        Scanner scanner1 = new Scanner(scanner.nextLine());
        while (scanner1.hasNext()) {
            String s = scanner1.next();

            int i;
            for ( i= 0; i < wordSize - s.length(); i++) {
                myInts[i][mySpot] = 0;
            }
             i--;
            for (int j=0;j < s.length(); i++,j++) {
                myInts[i][mySpot] = Character.digit(s.charAt(i), 10);
            } 
            mySpot++;
        }

        // do the additions here and add this line to output file  
    }