2017-12-01 33 views
-1

配列に値を代入するセッターを持つクラスを作成してから、メインメソッドではコマンドライン引数をとり、そのメソッドを使って配列に入れます。私はこれを行う方法の手がかりがありません。どんな助けもありがとう。コマンドライン引数を配列メソッドに入れる方法は?

import java.util.*; 
public class Number{ 

private double [] number = new double[3]; 
private double value ; 
private int i; 

public double[] getNumber() { 

    return sweet; 
} 

public void printNumber() { 

    System.out.println("Array " + Arrays.toString(number));   
} 

public double getValue(int i) { 

    return this.i; 
} 
public void setMethod(int i, double value) { 

    this.value = value; 
    this.i = i; 
} 
public class Score { 

    public static void main (String [] args) { 

    Number score = new Number(); 
// code to get values from keyboard into the array 

編集:新しい配列を作成していただきありがとうございます。今私は配列の値を変更できるようにする必要があります。私のsetMethodで私はこのような何かにそれを変更する必要が推測しています..

public void setMethod(int i, double value {  // 

for (i = 0; i < this.array.length; i ++){ 
       this.array[this.i] =this. value; 
} 

       this.mark = mark; 
       this.pos = pos; 


} 
+1

[ここで、このための例のGoogle検索だ](https://www.google.com/search?safe=off&rlz=1C1GGRV_enUS750US750&ei=xbMhWsm3OuvAjwS18q6gBw&q = site%3Astackoverflow.com + java + use + command + line + arguments&oq = site%3Astackoverflow。 com + java + use + command + line + arguments&gs_l = psy-ab.3 ... 1424.4831.0.5079.23.23.0.0.0.0.224.1673.18j2j1.21.0 .... 0 ... 1c.1.64.psy-ab ..4.2.158 ... 0i8i7i30k1.0.oMIGBBiY8NQ) – csmckelvey

+0

'main'メソッドを作成します。 ** JVM **は自動的に配列 'args'を作成して埋めます(' main'メソッド参照)。これを 'String []'型の単純な通常の配列として渡すことができます。 – Zabuza

+0

あなたの例にもいくつかの問題があることがわかります。 1)getNumber()メソッドで "numberを返す"べきです。 2)getValue()メソッドで、値を返す場合は、「戻り値」を記述する必要があります。 3)あなたのsetMethod()であなたの体を "number [i] = value;"に変更する必要があります –

答えて

-2

があなたの配列をコピーするには、次のコードのようなものを試してみてください:

public static void main (String [] args) { 
    // code to get values from keyboard into the array 
    String[] myArgs = new String[args.length]; 
    for (int i = 0; i < args.length; i++) { 
     myArgs[i] = args[i]; 
    } 
// ... 
} 
+1

私は 'Arrays.copyOf()'が良いと思います:) – dehasi

+0

私はしません。私は私の答えが好きです。 – nicomp

1

あなたはmain()メソッドのリストを見れば引数のうち、String[] argsが表示されます - コマンドライン引数が引数としてmain()メソッドに渡されます。あなたは単にforループを使用してそれらを読むことができます:

String[] yourNewArray = new String[args.length]: 
for(int i = 0; i< args.length; i++) { 
    yourNewArray[i] = args[i]; 
} 

yourNewArrayには、コマンドライン引数を格納しています。

yourNewArrayは、Stringsの配列である必要はありません。コマンドライン引数として渡される引数は、解析され、例えば整数、倍精度、その他の型の値として使用されます。

質問を編集して新しいことを理解してから、新しい配列を既存の配列に割り当てる方法と、この配列の単一の値を変更する別の方法を実装する例を示します。

import java.util.*; 

// This is your class - there is String[] arr - you want to be able to change whole array or its single value: 
class MyClass { 

    String[] arr; 

    // To change whole array: 
    public void setMethod(String[] array) { 
     this.arr = array; 
    } 

    // To change only one value in array: 
    public void changeSingleValue(int index, String value) { 
     arr[index] = value; 
    } 

} 

public class Test { 

    public static void main(String[] args) { 

     String[] arrayFromArgs = new String[args.length]; 
     for(int i = 0; i < args.length; i++) { 
      arrayFromArgs[i] = args[i]; 
     } 
     MyClass obj = new MyClass(); 

     // In this method you assign array storing command line arguments to the array in MyClass: 
     obj.setMethod(arrayFromArgs); 
     System.out.println("obj.arr: " + Arrays.toString(obj.arr)); 

     // Here is an example of assigning another array to obj.arr: 
     String[] anotherArray = { "A", "B", "C", "D"}; 
     obj.setMethod(anotherArray); 
     System.out.println("obj.arr: " + Arrays.toString(obj.arr)); 

     // Here is another way to assign new values to obj.arr: 
     obj.setMethod(new String[]{"x", "y", "z"}); 
     System.out.println("obj.arr: " + Arrays.toString(obj.arr)); 

     // Simple example how to change single value in obj.arr by passing the index where and value that needs to be changed: 
     obj.changeSingleValue(1, "Changed"); 
     System.out.println("obj.arr: " + Arrays.toString(obj.arr)); 

    } 

} 

そして、上記のプログラムの出力:

obj.arr: [] // in this array you will see values passed as the command line arguments 
obj.arr: [A, B, C, D] 
obj.arr: [x, y, z] 
obj.arr: [x, Changed, z] 
+0

ありがとうございます。その仕事。私の編集を見ていただけますか? – gnocci

関連する問題