Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 二维数组中的检查字符串_Java - Fatal编程技术网

Java 二维数组中的检查字符串

Java 二维数组中的检查字符串,java,Java,我从一个.tsv文件中得到了一个2d数组,我已经对它做了这样的处理 该文件的信息内容类似于: HG sn FA PC 2 16:0 PI 1 18:0 PS 3 20:0 PE 2 24:0 26:0 16:1 18:2 String[][] root; List<String> lines = Files.readAllLines(Paths.get("table.txt"), StandardCh

我从一个.tsv文件中得到了一个2d数组,我已经对它做了这样的处理

该文件的信息内容类似于:

HG  sn  FA  
PC  2   16:0
PI  1   18:0
PS  3   20:0
PE  2   24:0
        26:0
        16:1
        18:2

String[][] root;

List<String> lines = Files.readAllLines(Paths.get("table.txt"), StandardCharsets.UTF_8);

lines.removeAll(Arrays.asList("", null));  

root = new String[lines.size()][]; 

for(int i =0; i<lines.size(); i++){
root[i] = lines.get(i).split("\t"); 
这个用户输入可能类似于PC 34:2,然后我想检查2darray中的字符串hg,以查找关于sn值的信息。该值将在以后的数学算法中使用


但是如何检查2d数组中的字符串hg以获取sn值的信息?

您可以通过在根上运行for循环并检查根[i][0]来执行简单的搜索

String result = null;

for(int i=0;i<root.length;i++){

    if(root[i][0].equals(hg)){
         result = root[i][1];
         break;
    }
}

System.out.println("result=" + result);
如果是,则返回根[i][1]

[更新] 相同的代码:

String sn;

for(int i = 0; i < root.length; i++) {

    if (root[i][0].equals(hg)) { // check for matching value of 'hg' in first column
        sn = root[i][1]; // corresponding 'sn' value from 2D array
        break;
    }
}

// to extract double value from string sn
double sn_value = -1;

if (sn != null) { 
    sn_value = Double.valueOf(sn);
}
还可以阅读关于HashMap和基于键值检索的HashTable的内容,在将来会有所帮助

干杯


Mitesh

请使用适当的代码缩进。我不太确定应该如何构建for循环,以及如何返回值?^^^在java中,使用对象很容易;因此,我建议大家遵循@Svettin的答案。。。。干净简单但功能强大的代码字符串sn=null;我得到的错误是varialbe sn被定义为字符串[],并且我得到的错误是找不到符号方法大小
String sn;

for(int i = 0; i < root.length; i++) {

    if (root[i][0].equals(hg)) { // check for matching value of 'hg' in first column
        sn = root[i][1]; // corresponding 'sn' value from 2D array
        break;
    }
}

// to extract double value from string sn
double sn_value = -1;

if (sn != null) { 
    sn_value = Double.valueOf(sn);
}