【问题标题】:Parallel Arrays with a textfile带有文本文件的并行数组
【发布时间】:2013-12-04 00:13:58
【问题描述】:

我想组织一个包含多个数据的文本文件

A 33 9.25

V 92 1.123

H 100 2.4

进入并行数组

到目前为止,我必须声明数组列表,并且我知道我需要使用 while 循环和 hasext 做一些事情......不知道从那里去哪里。

  public static void main(String[] args) throws IOException
  {
        Scanner fileIn = new Scanner ( new File("sortdata.txt"));

      ArrayList<Character> array1 = new ArrayList<Character>();
      ArrayList<Integer> array2 = new ArrayList<Integer>();
      ArrayList<Double> array3 = new ArrayList<Double>();


        while (fileIn.hasNext())
        String i = fileIn.next();
        int k = 0;
        for(i.index(k);i.length();i.index(k++))
            if (i.index(k) =='.')
        {

        }

            }

我知道我的一些代码是错误的,但我已经看了很长时间,认为我只是在这里遗漏了一些小东西。

【问题讨论】:

  • for(i.index(k);i.length();i.index(k++)),这是什么意思?

标签: java arrays arraylist parallel-processing


【解决方案1】:

从此处String i = fileIn.next();trim() 的文件中读取每一行后,字符串(以消除@X86 建议的前导和尾随空格),然后按照以下步骤操作。

  1. 使用String#split() 方法在空白处拆分字符串。
  2. 上面的 split 方法返回的 String[] 包含了所有需要的 3 个数据。
  3. 从字符串[0] 中使用string.charAt(0) 获取字符并将其放入字符数组列表中。
  4. 使用 Integer.parseInt(string[1]) 将字符串 [1] 解析为 Integer 并将其放入 Integer ArrayList。
  5. 使用Double.parseDouble(string[2]) 将字符串[2] 解析为Double 并将其放入Double ArrayList。

【讨论】:

  • 先trim()不是更好吗??
  • @X86 - 不错的建议。将其包含在答案中! :)
  • 感谢@R.J 和@X86!我的教授并没有真正说明如何做到这一点,看起来很简单
【解决方案2】:

这应该可行:

while (fileIn.hasNextLine()) {
         String c[]= fileIn.nextLine().split(" ");
         array1.add(new Character(c[0].charAt(0)));
         array2.add(new Integer(c[1].trim()));
         array3.add(new Double(c[2].trim()));

         }

【讨论】:

  • 与其根据“”进行拆分,不如将正则表达式与s+一起使用??
  • @X86 - 更好:)
  • @rohitjose 谢谢!我看到你在那里做了什么,真的有助于简化它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-16
  • 2018-09-27
  • 1970-01-01
  • 2018-12-10
相关资源
最近更新 更多