从字符串形成一系列值

时间:2013-01-14 12:53:19

标签: java

我需要遍历矩阵之类的结构中的每个元素。例如,

SeatingType Model Back  Mech 
1              6   120   58
               7   121   59
               8    

在java值中,将以逗号分隔值中的字符串形式出现参数,例如SeatingTpe(1),Model(6,7,8)等。

我需要将结果作为

1,6,120,58
1,6,120,59
1,6,121,58
1,6,121,59
1,7,120,58
1,7,120,59
1,7,121,58
1,7,121,59
1,8,120,58
1,8,120,59
1,8,121,58
1,8,121,59

请注意,Model,Back和Mech可能为null。如果Model值为null,则输出应为1,6,58和1,6,59等。任何帮助PLZ

作为一个开端,我尝试从最后一个元素循环(在这种情况下'Mech')>但这非常乏味。还有其他方法吗?我在这里只提供了4个属性。但是要求是11个属性。我希望能否获得4个属性的解决方案,这可以应用于休息7

1 个答案:

答案 0 :(得分:1)

迭代4个循环:

List<String> seatTypeValues = ...
List<String> modelValues = ...
List<String> backValues = ...
List<String> mechValues = ...

if (seatTypeValues.isEmpty()) { seatTypeValues.add(null); }
... // all 4 lists

for(String seatType : seatTypeValues) {
  for(String model : modelValues) {
    for(String back : backValues) {
      for(String mech : mechValues) {
        // print the CSV
        if (seatType != null) {
          writer.write(seatType);
        }
        if (model != null) {
          writer.write(',');
          writer.write(model);
        }
        if (back != null) {
          writer.write(',');
          writer.write(back);
        }
        if (mech != null) {
          writer.write(',');
          writer.write(mech);
        }
        writer.write("\r\n");
      }
    }
  }
}