读取输入文本文件并将令牌存储在java中的2个不同数组中

时间:2014-02-10 23:14:54

标签: java arrays

我是java的新手,所以如果有明显的错误请忽略。如果我的问题似乎多余,那么请引导我走向正确的链接。但是,为了找到答案,我已经足够了 我正在读取输入文件并将其元素存储在2D数组中。我想要做的是将该数组拆分为2个独立的数组。第一个数组将包含我的代码中“firstDimension”的所有字符。现在,我想要另一个数组,它存储数组中的所有整数。我只需要打印那些数组。应该在特殊字符'>'后立即创建此数组被观察到 这可以通过两种方式完成:

  1. 读取文件中的字符串并将所有元素存储在2D数组中,然后将数组分成1个double和1个2D char数组

  2. 从文件中只读字符并将其存储在字符数组中,然后只从文件中读取双值并将其存储在不同的数组中。

  3. 我的输入文件有文字:

    a A b u>0.0001
    b b X g>0.0005
    Y z N H>0.0003
    
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.util.ArrayList;
    import java.util.Scanner;
    
    public class Delimiter {
        public static void main(String[] args)
        {
            try {
                Scanner scanner = new Scanner(new File("hello.txt"));
                scanner.useDelimiter(System.getProperty("line.separator"));
    
                ArrayList<String> list = new ArrayList<String>();
    
                while (scanner.hasNext()) {
                    list.add(scanner.next());
                }
                scanner.close();
    
                // finally convert the arraylist to a char[][]
                char[][] firstDimension = new char[list.size()][];
                for (int i = 0; i < list.size(); i++) {
                    firstDimension[i] = list.get(i).toCharArray();
                }
    
                for (int i = 0; i < firstDimension.length; i++)
                {
                    for (int j = 0; j < firstDimension[i].length; j++)
                    {
                        //System.out.println(firstDimension[i][j]);
                        System.out.print(" "+firstDimension[i][j]);
                        System.out.println("");
                    }
                }
    
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
        }
    }
    

1 个答案:

答案 0 :(得分:0)

我不知道是否有任何方法可以帮助您,但您可以说

if(var == 0 || 1 || 2 || 3 || 4 || 5 ) //all the way until you reach 9
{
      //is a number and needs to be put in the double array
}
else //is a string
  • 编辑

由于您将数据存储在数组中,因此可能必须使用BinarySearch方法。