我正在尝试创建一个单词搜索程序,将文件中的单词逐字符放入矩阵中。
import java.util.*;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class SearchWord {
public SearchWord() {
}
public void getMatrix() throws FileNotFoundException {
File file = new File("C:/Users/Cameron/Desktop/words.txt");
ArrayList<Character> words;
String largest = " ";
int col = 0;
int count = 0;
Scanner sc = new Scanner(file);
Scanner newsc = new Scanner(file);
while (sc.hasNextLine()) {
String first = sc.next();
String first1 = sc.nextLine();
if (first.length() > largest.length()) {
largest = first;
col = largest.length();
}
words = new ArrayList<Character>();
for (int i = 0; i < first.length(); i++) {
words.add(first.charAt(i));
}
char[] chars = new char[words.size()];
for (int i = 0; i < chars.length; i++) {
chars[i] = words.get(i);
}
char data[][] = new char[largest.length()][col];
for (int i = 0; i < chars.length; i++) {
for (int j = 0; j < largest.length(); j++) {
data[i][j] = chars[i];
}
}
for (int i = 0; i < data.length; i++) {
for (int j = 0; j < data[i].length; j++) {
System.out.println(data[i][j] + " ");
}
System.out.println();
}
}
}
public static void main(String[] args) throws FileNotFoundException {
SearchWord check = new SearchWord();
check.getMatrix();
}
}
我的words.txt文件中有瓢虫,围栏和汉堡字样,但我无法正确地将它们读入矩阵。我最终希望在普通字母上重复单词。我也想要用随机字母填充空格,但我可以稍后再说。
看起来应该是这样的:
alaaaaafa
hamburger
adaaaaana
ayaaaaaca
abaaaaaea
auaaaaaaa
agaaaaaaa
但它改为:
l l l l l l l
a a a a a a a
d d d d d d d
y y y y y y y
b b b b b b b
u u u u u u u
g g g g g g g
h h h h h h h h h
a a a a a a a a a
m m m m m m m m m
b b b b b b b b b
u u u u u u u u u
r r r r r r r r r
g g g g g g g g g
e e e e e e e e e
r r r r r r r r r
f f f f f f f f f
e e e e e e e e e
n n n n n n n n n
c c c c c c c c c
e e e e e e e e e
答案 0 :(得分:1)
我相信程序中有两个错误,可以解决您的两个问题。
首先,使用chars.length
而不是largest.length
分配数组。除非您读取的最后一个字符串也是最大的,否则会出现内存错误。
其次,您使用println
而不是print
来显示字符;你的外循环中已经有println
,所以你似乎正确地计划在内循环中使用print。
另外,我已经完成了你正在尝试的东西,但是在C ++中(不,抱歉,不会分享那个代码),作为一个有用的提示,你可能想要一个看这个: https://en.wikipedia.org/wiki/Smith%E2%80%93Waterman_algorithm