将混合列表元素与扫描仪匹配

时间:2015-12-15 01:41:12

标签: java arrays

假设我有一个混合列表(字符串和整数数据类型)100的行长。 即。

Lines=
    <Thanks For 44 55>
    <Helping Me 43 66>
    etc...

我想使用scanner类来匹配两个字符串(并提取相应的数字)。 如何编写isolate方法来执行此操作。 目标是将两个相应的整数值提供给单独的calculate方法。 这就是我所拥有的。

private List<String> lines = new ArrayList<String>();


public void isolate( String s, String l){
        if(String s = this.line.matches(".s*") && String  l=this.line.matches(".l*")){
        lineNew = lines[s][l];
        //// extract the integer values (index 2, index 3) from linesNew here        }
    }

1 个答案:

答案 0 :(得分:1)

你在评论中说过:

  

更新了上面的细节,它是一个带整数&amp;的列表。字符串数据类型。

我不同意,不,这是一个字符串列表,句号。 String可能包含int和子字符串的表示,但它们都保存在String中。一个体面的解决方案的关键是不要这样做,不要使用String来表示逻辑上可以以更健全的方式表示的东西。所以,...

  • 创建一个自定义类,一个包含两个私有String和两个私有int字段,
  • 与吸气者和制定者,建设者,......
  • 即使其中一个或两个数字字段代表其“自​​然”顺序,也要实施Comparable<...>
  • 当您使用扫描仪阅读本行时,将该行解析为此自定义类的组成字段类型,并使用它创建一个对象。
  • 然后将其放入List<MyCustomClass>
  • 这样做,创建方法变得微不足道。
  • 考虑使用第二个内部扫描程序,一个用于行,这可以帮助您将行解析为两个字符串和两个整数。请务必在循环的每次迭代中关闭此内部扫描仪,以免浪费资源。