java - 在扫描仪中使用分隔符;忽略空格和换行符

标签 java arrays java.util.scanner

美好的一天,

我正在尝试使用扫描仪读取txt文件,并将字符保存到二维字符串数组中。 txt文件由8行字符组成,不以空格分隔。如果它们由空格分隔,或者(包括分隔符)如果字符全部在一行中,则我的程序可以工作(如果删除分隔符)。

如果有人能告诉我如何正确保存字符,我将不胜感激。问题出在 Read() 函数中,带有双 for 循环。我尝试添加另一个分隔符 (s.useDelimiter(s.nextLine())) 但我不知道如何实现它。

请记住,这是我第一次使用文件扫描仪,而且我只是在学习编程,因此我的代码不会很高级。

亲切的问候, 马修

import java.util.Scanner;
import java.io.File;
import java.io.FileNotFoundException;

public class BoardFile {

    String[][] board = new String[8][8];
    Scanner s;

    // Print the board
    public void Printboard() {
        for (int i = 0; i < 8; i++) {
            for (int j = 0; j < 8; j++) {
                System.out.print(board[i][j]);
            }
            System.out.println();
        }
    }

    public void Open() {
        try {
            s = new Scanner(new File("**TXT FILE PATHNAME HERE**"));
        } catch (FileNotFoundException e) {
            System.out.println("Error");
        }
    }

    public void Read() {
        s.useDelimiter("");
        for (int i = 0; i < 8; i++) {
            for (int j = 0; j < 8; j++) {
                String a = s.next();
                board[i][j] = a;
            }
        }   
    }

    public static void main(String[] args) {
        BoardFile a = new BoardFile();
        a.Open();
        a.Read();
        a.Printboard();
    }
}

txt文件: https://www.dropbox.com/s/k8fkneg2dcw0cbe/abcde.txt?dl=0

最佳答案

使用扫描仪的 nextline() 和 split() 函数将结果读入二维数组

public void Read() {
        for (int i = 0; i < 8; i++) {
                board[i]= s.nextLine().split("");
            }
        }   

关于java - 在扫描仪中使用分隔符;忽略空格和换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52025051/

相关文章:

java - 如何从一个表中获取另一表中不存在的行

c - 在 C 中使用递归反转字符数组

javascript - 根据key将json数组分割成json数组

java - 尝试制作一个能够通过单个输入将具有特定边数的骰子滚动特定次数的骰子滚筒

java - BufferedImage 和具有透明度的像素操作

java - 如何使用类方法计算数组中所有值的平均值

java - ORMLite 或跨多个表查询

arrays - 如何将原生 Swift 集转换为 NSArrays?

Java,Scanner只读取前两行,忽略其余的

java - 为什么扫描仪不在 try-catch while 循环 java 中要求其他输入