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的循环
展开
 我来答
Leo分享
推荐于2017-09-15 · TA获得超过754个赞
知道小有建树答主
回答量:1405
采纳率:0%
帮助的人:762万
展开全部
假设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();
月牙马马
2013-08-05 · TA获得超过189个赞
知道小有建树答主
回答量:428
采纳率:0%
帮助的人:173万
展开全部
如果‘-’的个数超过80% 超过80% 我该怎么理解?
追问
-的个数占每一列 字符总数的80%
追答
- -
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式