java - 放置双值二维数组读取文本

标签 java arrays file

我想将文本的 double 值放在二维数组上。我的文本有这样的 double 值和字符串值

我的文字

deneme deneme 4.5 5.5 6.6 7.5 9.9 9.9

dsdsa sddsf 9.9 8.7 7.5 8.8 4.4 6.5

我从字符串中提取 double 值。 我的程序输出是

4.5 5.5 6.6 7.5 9.9 9.9 9.9 8.7 7.5 8.8 4.4 6.5

我如何输出六重奏。如果我能做到这一点,我将对每一行进行排序

第一线:4.5 5.5 6.6 7.5 9.9 9.9

第二行:9.9 8.7 7.5 8.8 4.4 6.5

public static void main(String[] args) throws IOException {

    ArrayList<String> puan;
    puan = okuDiziyeKoy("C:\\deneme\\HW.txt");
    System.out.format("%d kayıt okundu.%n", puan.size());

    for (int j = 0; j < puan.size(); j++) {

        String point = puan.get(j);

        String[] edit = point.split("[\\{\\}\\)]");

        for (String s : edit) {

            String a = s.replaceAll("[\\}\\-\\>\\>\\]\\[\\#\\*\\{]+", "");
            String b = a.replaceAll("[\\.]+", ",");
            Scanner scanner = new Scanner(b);

            while (scanner.hasNext()) {

                if (scanner.hasNextDouble()) {

                    Double doubleValue = scanner.nextDouble();
                    List<Double> numbers = new ArrayList<Double>();
                    numbers.add(doubleValue);
                    // System.out.println(Arrays.deepToString(numbers.toArray()));

                    final int col = 6;
                    final int rows = numbers.size() % col == 0 ? numbers.size() / col : numbers.size() / col + 1;
                    double[][] deneme = new double[rows][col];
                    for (int i = 0; i < rows; i++) {
                        for (int k = 0; k < col; k++) {
                            if (i == rows - 1 && k >= numbers.size() % col) 
                                break;
                            deneme[i][k] = numbers.get(k + col * i);       
                            System.out.print( deneme[i][k]+ " ");
                        }// for k end
                        System.out.println(); // go to next line
                    } // for i end

                }// if scan end

                else {

                    //if it is string comes value here
                    String stringValue = scanner.next();

                }// if scan end

            }// while end

        }// for string s

    }// for end

}// main end

最佳答案

在内循环(k循环)之后引入换行符,使用System.out.println()

 for (int i = 0; i < numbers.size(); i++) {
      for (int k = 0; k < numbers.size(); k++) {
         deneme[i][k] = numbers.get(k + (numbers.size() * i));       
         System.out.print( deneme[i][k]+ " ");
      }// for k end
      System.out.println(); // to introduce a newline
 } // for i end

关于java - 放置双值二维数组读取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17691935/

相关文章:

c# - 如何为 C# 和 Java 设置符号服务器

c++ - 将特征矩阵转换为 std::vector<std::array<>> 形式

c - 如何从 c 程序准确复制 linux 上的文件

java - 在java中使用for循环生成一些文本文件?

java - iText PDF 正文内容在页 footer 分重叠

java - 具有文件输入流和 json 正文的 Web 服务?

java - java中的科学记数法抽象

c++ - 成员函数指针的静态成员数组

python - 未知维度张量的逐元素乘法

python - 在 Python 中复制多个文件