我得到一个文本文件,其中第一行给出了我想要的数组大小,列和行,而其他行给了我布尔值。我必须构建这个矩阵,但可以创建数组,但不知道我必须这样做,通过其他文件行创建矩阵我内部的布尔
int width = 10;
int height = 9;
float** matrix = (float**) malloc(height*sizeof(float));
for (unsigned int i = 0; i < height; i++)
matrix[i] = (float*) malloc(width*sizeof(float));
//This works
matrix[6][0] = 3.0f;
for (unsigned int j = 0; j < width; j++) {
for (unsigned int i = 0; i < height; i++) {
//This fails on [6][0]
matrix[i][j] = 3.0f;
}
}
我到目前为止做的是:
example: 5
true true true true false
false false true true false
false false false true true
true true true true true
true false false true true
感谢任何帮助
答案 0 :(得分:1)
可以使用BUfferedReader作为输入流创建扫描仪对象。此扫描程序可以直接解析布尔值。
检查以下代码:
Scanner sc = new Scanner(rede);
for(int i = 0; i<nLinhasColunas; i++){
for(int j = 0; j< nLinhasColunas; j++){
Boolean b = sc.nextBoolean();
matrix[i][j] = b;
}
}
答案 1 :(得分:0)
一种解决方案可能是使用以下想法:
Scanner sc=new Scanner(System.in);
int nLinhasColunas =Integer.parseInt(sc.next());
matrix = new boolean[nLinhasColunas][nLinhasColunas];
for(int i=0;i<nLinhasColunas;i++)
for(int j=0;j<nLinhasColunas;j++)
{
String s=sc.next();
if(s.equals("true"))
{
matrix[i][j]=true;
}
else
{
matrix[i][j]=false;
}
}
答案 2 :(得分:0)
使用布尔字迭代数组,将当前字转换为布尔值并将其附加到矩阵。
List<String> lines = Files.readAllLines(Paths.get("/path/to/ur/file"));
String firstLine = lines.get(0);
int size = Integer.valueOf(firstLine.split(" ")[1]); // get '5'
boolean[][] matrix = new boolean[size][size];
Lines.remove(0); // delete the first line
for(int i=0; i<lines.size(); i++) {
String[] lineParts = lines.get(i).split(" ");
for(int k=0; k<lineParts.length; k++) {
matriz[i][k] = new Boolean(lineParts[k]);
}
}
System.out.println(matrix);