簡體   English   中英

解析和排序后在行之間獲取0.0

[英]Getting 0.0 inbetween lines after parse and sort

讀取一個具有隨機雙精度行的文件。 讀取文件,對數字進行排序,然后返回文件。 一切都很好,但是當我打印排序的數字時,我在每行之間得到一個0.0。 我猜我結尾處有一個空字符串,這就是為什么我嘗試添加trim(),但沒有運氣的原因。 有任何想法嗎? 下面的代碼和輸出

import java.io.FileReader;
 import java.io.IOException;
 import java.util.Arrays;
 import java.util.Scanner;
public class sortExample {

    public static void main (String[] args) throws IOException {
    String file = "C:\\Users\\xxxx\\Desktop\\new.txt";
    Scanner sc = new Scanner(new FileReader(file));
    String line;
    while (sc.hasNext()) {
        line = sc.nextLine();
        line.trim();
        String[] lineArray = line.split("\\s");
        double[] nums = new double[lineArray.length];
        if (lineArray.length > 0) {
            for (int i = 0; i < lineArray.length; i++) {
                if (!lineArray[i].isEmpty()) {
                nums[i] = Double.parseDouble(lineArray[i]);
            }}
            Arrays.sort(nums);
        }
        for (int i = 0; i < nums.length-1; i++) {
        System.out.print(nums[i] + " ");
    }
    System.out.print(nums[nums.length-1]);
    System.out.print("\n");

    }
    System.exit(0);
  }
}

這是代碼運行時得到的信息。 所有的數字都進行了排序,但我不知道為什么每一行后都有0.0。 系統結束時沒有最終的0.0。 有任何想法嗎?

-91.232 -90.65 -81.425 -80.503 -50.68 -45.588 -23.141 -0.665 18.004 29.005 92.292 93.923

0.0

-100.835 -99.504 -80.183 -72.063 -71.447 -63.888 -47.389 -45.882 -37.815 -37.56 -22.952 -20.448 23.598 48.676 55.724 65.639 67.449 70.038

0.0

-78.977 -78.528 -72.272 -70.805 -64.709 -44.632 -42.855 -23.822 -22.273 -10.833 -1.157 7.712 21.619 21.935 23.442 37.869 42.056 78.46 94.735

0.0

-92.446 -84.111 -47.699 -23.366 -8.725 -1.679 7.685 23.537 32.703 67.569 68.633 72.266

0.0

-85.242 -83.407 -60.563 -47.319 -35.602 -22.979 -20.904 -16.537 25.004 55.298 69.193

0.0

-70.442 -39.916 -25.097 -8.729 -1.194 -0.043 7.086 11.874 19.538 35.647 44.886 52.162

0.0

-98.469 -80.931 -73.274 -55.879 -54.946 -54.695 -52.389 -45.66 -29.34 -12.44 -12.171 16.25 16.536 45.065 97.759

0.0

-65.594 -50.741 -49.607 -36.255 -27.512 -1.492 1.905 10.135 40.764 63.527 66.459 79.457 95.891

0.0

-75.088 -71.983 -64.298 -52.566 -33.779 -26.999 -19.76 -12.022 30.107 32.164 44.109 69.123 71.333

0.0

-100.822 -91.321 -58.742 -51.631 -6.001 -1.338 5.147 13.478 14.336 63.754 66.76 69.227

0.0

-100.729 -87.041 -51.238 -30.391 -19.053 -12.027 -1.812 9.104 38.951 41.738 45.416 57.447 80.157 94.37

0.0

-100.733 -96.084 -66.776 -64.397 -48.363 -38.223 11.665 13.101 22.904 30.637 40.223 61.489 67.105 86.601 98.225

0.0

-96.917 -71.136 -45.42 -45.24 39.232 43.879 51.401 52.31 57.029 76.001 99.577

0.0

-95.874 -91.529 -61.868 -56.623 -56.55 -43.048 -37.933 -33.65 -32.251 -31.507 -14.625 -1.828 34.268 59.821 60.48 73.106 75.763 89.408 89.551

0.0

-90.637 -77.109 -71.369 -64.957 -60.957 -52.252 -45.577 -34.413 -23.08 -22.805 27.066 34.148 39.28 81.409 90.394 91.746

0.0

-100.389 -99.758 -61.022 -26.942 -18.452 -14.1 -6.847 18.504 21.213 47.721 67.033 72.152

0.0

-86.559 -85.971 -80.617 -43.239 -41.397 -30.985 -22.344 -5.222 -3.042 3.629 7.885 24.202 33.706 58.209 67.877 92.776 96.691 98.549

0.0

-90.386 -79.406 -72.129 -56.667 -55.158 -54.217 -37.413 -28.465 8.949 14.774 24.166 24.632 34.977 35.126 59.208 80.778 84.792

0.0

-80.957 -60.479 -55.715 -30.557 -24.367 -10.497 -1.073 30.088 66.313 74.442 86.75 89.186

0.0

-88.962 -65.577 -44.427 -32.155 -32.106 -26.038 -22.205 -21.784 -14.312 -12.412 -5.275 10.442 12.684 33.622 33.838 41.632 50.094 67.565 75.008 89.463

如果您的輸入文件有空行,它將打印出“ 0.0”。 嘗試檢查讀取的行的長度是否大於0。例如:

if (line.length() > 0) {
    String[] lineArray = line.split("\\s");
    double[] nums = new double[lineArray.length];
    if (lineArray.length > 0) {
        for (int i = 0; i < lineArray.length; i++) {
            if (!lineArray[i].isEmpty()) {
                nums[i] = Double.parseDouble(lineArray[i]);
            }
        }
        Arrays.sort(nums);
    }
    for (int i = 0; i < nums.length - 1; i++) {
        System.out.print(nums[i] + " ");
    }
    System.out.print(nums[nums.length - 1]);
    System.out.print("\n");
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM