gpt4 book ai didi

java - 如何使用扫描仪读取文件,然后将其放入二维字符数组中

转载 作者:行者123 更新时间:2023-12-02 09:31:48 25 4
gpt4 key购买 nike

我有一个文本文件,其中基本上包含一张带有一堆字符的图片。

我正在使用scanner.nextLine并将其保存到一个字符串中,然后使用该字符串的charAt(index)来获取每个位置的单个字符并将其保存到matrix[I][j]中。当我尝试使用嵌套 for 循环打印图片时,它看起来与文本文件完全不同。

String string;
Scanner pic = new Scanner(new File("/Users/yoyoma/eclipse-workspace/Picture/resources/pics/" + filename));
int row = pic.nextInt();
int col = pic.nextInt();
char[][] picture = new char[row][col];
for(int i = 0; i < row; i++) {
if(pic.hasNextLine()) {
string = pic.nextLine();
for(int j = 0; j < col; j++) {
for(int a = 0; a < string.length(); a++) {
picture[i][j] = string.charAt(a);
}
}
}
}
for (int z = 0; z < row; z++) {
for (int x = 0; x < col; x++) {
System.out.print(pic[z][x]);
}
System.out.println();
}

我希望图片看起来像文本文件中的那样,但我却得到了一大堆乱七八糟的字符,顺序错误,有些甚至丢失了。

//This is what the text file looks like:

10 10
## #######
#
# #
# ######
# # #
#G # #
# # #
# L # #
# #
######## #

//Here is my output:


##########


##########
##########
##########
##########
##########
##########

最佳答案

您遇到的问题与您的读者有关。具体

        for(int j = 0; j < col; j++) {
for(int a = 0; a < string.length(); a++) {
picture[i][j] = string.charAt(a);
}
}

您基本上读取该行 10 次,并在 j 的每个循环结束时将每一列设置为该行的最后一个字符。

您需要将其修改为:

        for(int j = 0; j < col; j++) {
picture[i][j] = string.charAt(j);
}

关于java - 如何使用扫描仪读取文件,然后将其放入二维字符数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57897524/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com