java中怎样处理二维数组中的每一列?
比如说这样一个文件(许多行列,且行数列数未知。)>name1234---1239>egeg123--12345>wert1234---678如果想对每一列分析,如果‘-’...
比如说这样一个文件(许多行列,且行数列数未知。)
>name 1234---1239
>egeg 123--12345
>wert 1234---678
如果想对每一列分析,如果‘-’的个数超过80%,就把这一列删除,应该怎么编程。
public static void main(String[] args) throws IOException {
@SuppressWarnings("resource")
Scanner scan = new Scanner(System.in);
String str = scan.nextLine();
String str1 = readFileContent(str);
String[] a = str1.split(">");
BufferedWriter bw = new BufferedWriter(new FileWriter("d:\\java\\4.fas"));
int n = 0;int i= 0;int j = 0;
String[][]b=new String[i][j];
for(int h = 0; h<a[n].length(); h++){
for(int k = 0; k<a.length ; k++){
b[i][j]=a[n];
n++;}}
int no1 = 0;
int no2 = 0;
no1+=b[0][j].replaceAll("-"," ").length();
no2+=b[0][j].length();
if(no1/no2<0.2){}
bw.write(">"+b[i][j]); bw.flush();
bw.close();
}
}但是 这样编程 运行 的时候出现错误,数组越界,请问怎么该啊,主要是我不太会用两个for的循环 展开
>name 1234---1239
>egeg 123--12345
>wert 1234---678
如果想对每一列分析,如果‘-’的个数超过80%,就把这一列删除,应该怎么编程。
public static void main(String[] args) throws IOException {
@SuppressWarnings("resource")
Scanner scan = new Scanner(System.in);
String str = scan.nextLine();
String str1 = readFileContent(str);
String[] a = str1.split(">");
BufferedWriter bw = new BufferedWriter(new FileWriter("d:\\java\\4.fas"));
int n = 0;int i= 0;int j = 0;
String[][]b=new String[i][j];
for(int h = 0; h<a[n].length(); h++){
for(int k = 0; k<a.length ; k++){
b[i][j]=a[n];
n++;}}
int no1 = 0;
int no2 = 0;
no1+=b[0][j].replaceAll("-"," ").length();
no2+=b[0][j].length();
if(no1/no2<0.2){}
bw.write(">"+b[i][j]); bw.flush();
bw.close();
}
}但是 这样编程 运行 的时候出现错误,数组越界,请问怎么该啊,主要是我不太会用两个for的循环 展开
2个回答
展开全部
假设a是待处理的二维数组
public String[][] (String[][] a){
int b1 = 0,b2 = 0;
int no1 = 0;
int no2 = 0;
for(int h = 0; h<a.length(); h++){
for(int k = 0; k<a[h].length ; k++){
no1+=a[h][k].replace("-","").length;//不是换成空格 换成空
no2+=a[h][k].length;
b[b1][b2++]=a[h][k];
if(no1/no2>0.2){
b1++;
}
}
}
if(no1/no2<0.2){
删除最后一行;
}
return b;
}
这下明白了么
删除最后一行的方法自己写吧
追问
这样弄结果为什么还是java.lang.ArrayIndexOutOfBoundsException: 1呢 是不是我定义二维数组定义错了,还是 bw。write的不对,应该是怎样,啊啊啊 我晕死了要。。谢谢你啦
追答
for(int h = 0; h"+b[i][j]);
}
}
bw.flush();
bw.close();
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询