如何分解Java数组



我正在写一个处理信号数组的java程序。

这个数组是通过将midi文件转换为midi-text文件得到的:

Signal [] sig= {"a1a2a3", "b1b2b3", "c1c2c3", "d1d2d3"};

Signal [] sig1 = {"a1", "b1", "c1", "d1"};
Signal [] sig2 = {"a2", "b2", "c2", "d2"};
Signal [] sig3 = {"a3", "b3", "c3", "d3"};

如何实现?

你知道MultiMap吗?

我认为你可以在创建原始数组的同时实现multimap

通过:http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/collect/Multimap.html

简单的解决方案是这样的:

如果数组像

Signal [] sig= {a1a2a3, b1b2b3, c1c2c3, d1d2d3};
for(int i = 0;i<sig.size();i++){
for(int j = 0;j<sig[i].length() ;j++){
newArray.add(sig.subString(j,j+1));
}
}

可以通过这样的字符串操作来实现。可以吗?

ArrayList<Signal[]> list = new ArrayList<Signa[]>();
for(Signal s : sig)
  list.add(s.split());
int X = list.get(0).size();
int Y = sig.length()
Signal[][] sigs = new Signal[X][Y];
for(int i=0; i<X; i++)
  for(int j=0; j<Y; j++)
    sigs[i][j] = list(i)[j];
Signal[] sig1 = sigs[0];
...

你需要添加一个拆分方法到Signal类:

class Signal {
  ....
  public Signal[] split() {
    // split signals
  }
}

最新更新