① java中怎样处理二维数组中的每一行每一列
读入后,直接用String.charAt() 来统计-符号,符合则不写入另一个文件、否则写入另一个文件中。
② java 找到二维数组指定元素的位置
Scanner sn=new Scanner(new File(path)).useDelimiter("\r\n"); 这行代码的意思应该是指定分割符为“/r/n”吧,这个/r/n不一定是换行,用这个分割的数组元素全了空值,换个成这样吧
Scanner sn=new Scanner(new File(path)).useDelimiter([\\s]");
这样表示用空字符分割
还有find方法里的这行代码
if (ss[i][j].equals(str))
因ss[i][j]的值可能是空的,直接调用equals的话可能报空指针异常
所以equals前加个if 判断一下,如果是空就不用equals了
这是我改的代码
package com.jhc.cglib.test;
import java.util.*;
import java.io.*;
public class ReaderFile {
public static void main(String[] args) {
ReaderFile rf = new ReaderFile();
String ss[][] = rf.getArray("C:/Users/Administrator/Desktop/111.txt");// 文件路径
System.out.println(find(ss, "价位"));
}
public static int find(String[][] ss, String str) {
if(ss==null||ss.length==0)
return -1;
boolean flag = false;
for (int i = 0; i < ss.length; i++) {
for (int j = 0; j < ss[i].length; j++) {
if(ss[i][j]==null)
continue;
if (ss[i][j].equals(str)) {
flag = true;
System.out.print(i + 1 + "\t");
System.out.println(j + 1);
}
}
}
if (flag == false) {
return -1;
}
return -1;
}
public String[][] getArray(String path) {
String[][] x = new String[15][15];
try {
Scanner sn = new Scanner(new File(path)).useDelimiter("[\\s]");
int i = 0;
while (sn.hasNextLine()) {
String[] ss = sn.next().split(" ");
System.out.println(Arrays.toString(ss));
for (int j = 0; j < ss.length; j++) {
x[i][j] = ss[j];
}
++i;
}
} catch (Exception e) {
e.printStackTrace();
}
return x;
}
}
③ java怎样获取二维数组
你是获取数组还是数组里面的值呢??
你要获取值就用 XX[?][?]问号是数字就可以访问到里面了值了.
④ java 如何获取一个2维数组的长和宽
如一定义二维数组array[][],则获得该数组的长度(即行数)的代码为array.length,对于每一行的宽度内可以循环获得容,如获得第i行的宽度(i的范围是0~array.length-1)的代码为array[i].length。
其他维数组获得长度信息依次类推。