私は、1次元配列を2次元配列に切断するプログラムが必要です。 しかし、第2次元は別の配列ではなく、新しいオブジェクトでなければなりません。(JAVA)配列をステートメントに分割し、新しい配列のオブジェクトに保存しますか?
私は2つの入力を持っている:
- 文字列配列1は、(引数と値を含む)のフルコマンド文が含まれてい
- 文字列配列2は、私がしたいすべての有効な引数-名
が含まれています1つの出力:
- arg +値を含む文字列配列:この配列のすべての要素は、 (引数+彼の値)OR(唯一の引数):クラス "cuttedStatement"
クラス "cuttedStatement" のこれらのオブジェクトは、両方を持つことができます。したがって、値の有無にかかわらず引数は有効です!記述した絵で
ルック:だから今、私の質問
public class CuttedStatement {
String argument;
String value;
boolean hasValue;
public CuttedStatement(String argument) {
this.argument = argument;
this.hasValue = false;
}
public CuttedStatement(String argument, String value) {
this.argument = argument;
this.value = value;
this.hasValue = true;
}
}
:これは私のCuttedStatementクラスです
import java.util.*;
public class Main {
public static void main(String[] args) {
String[] statement = {"-in", "FILENAME", "-out", "FILENAME" , "-keep" , "-typ", ".avi", "-status"};
String[] validArgs = {"-in", "-out", "-keep", "-typ", "-status"};
ArrayList<CuttedStatement> cuttedOutputList = new ArrayList<>();
for (int i = 0; i < statement.length; i++) {
boolean contains = Arrays.asList(validArgs).contains(statement[i+1]);
if(contains) {
CuttedStatement obj[i] = new CuttedStatement(statement[i]);
cuttedOutputList.add(obj);
}else {
CuttedStatement obj[i] = new CuttedStatement(statement[i],statement[i+1]);
cuttedOutputList.add(obj);
}
}
}
}
はCutterPrgmのための私のコードです:あなたが推測しているように、プログラムは動作しません。
私の最初の問題は「obj [i]」オブジェクトです。私はあなたが持っているように、新しい繰り返しのたびにindex = iという新しい "obj"を作成したかったのです:Array = {obj1、obj2、obj3、obj4、etc ...}。これはうまくいかないようです。
多分あなたは私のための解決策を知っているか、いくつかのヒントを持っています。そうだといい。どうもありがとうございました。 :D