2017-12-01 3 views
-1

Ich muss eine Klasse erstellen, die einen Setter hat, um einem Array Werte zuzuordnen, dann in der Hauptmethode Befehlszeilenargumente nehmen und die Methode verwenden, um diese in ein Array zu setzen. Ich habe keine Ahnung, wie ich das machen soll. Jede Hilfe wäre willkommen.Wie werden Befehlszeilenargumente in eine Array-Methode eingefügt?

bearbeiten: Vielen Dank für Ihre Hilfe Ich schaffte es, das neue Array zu erstellen. Jetzt muss ich in der Lage sein, den Array-Wert zu ändern. In meinem setMethod ich vermute ich es, etwas ändern müssen ..,

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

[Hier ist ein Beispiel google-Suche nach diesem] (https://www.google.com/search?safe=off&rlz=1C1GGRV_enUS750US750&ei=xbMhWsm3OuvAjwS18q6gBw&q = site% 3Astackoverflow.com + java + benutze + befehl + zeile + argumente & oq = site% 3Astackoverflow. com + java + Verwenden + Befehl + Zeile + Argumente & 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

Erstellen Sie eine 'main'-Methode. Die ** JVM ** erstellt und füllt automatisch das Array 'args' (siehe' main' Methode). Sie können dies als einfaches reguläres Array vom Typ 'String []' übergeben. – Zabuza

+0

Ich sehe, es gibt auch einige Probleme in Ihrem Beispiel. 1) Sie sollten "Zahl zurückgeben" in Ihrer Methode getNumber(). 2) Wenn Sie in Ihrer Methode getValue() einen Wert zurückgeben wollen, müssen Sie "Rückgabewert" schreiben. 3) In Ihrer setMethod() müssen Sie ihren Körper zu "number [i] = value;" –

Antwort

-2

versuchen, etwas wie den folgenden Code Ihr Array zu kopieren:

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

Ich denke, 'Arrays.copyOf()' wäre besser :) – dehasi

+0

Ich nicht. Ich mag meine Antwort. – nicomp

1

Wenn man sich main() Methode Liste von Argumenten sehen Sie String[] args - Befehlszeilenargumente werden als Argumente an die main()-Methode übergeben. Sie können sie mit einer for-Schleife einfach lesen:

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

Jetzt in yourNewArray Sie Befehlszeilenargumente gespeichert haben.

Es ist erwähnenswert, dass yourNewArray kein Array mit Strings sein muss. Argumente, die als Befehlszeilenargumente übergeben werden, können analysiert und beispielsweise als Ganzzahlen, Doppelwerte und andere Arten von Werten verwendet werden.

Nun, wie Sie Ihre Frage bearbeitet und neue Sache haben, um herauszufinden, werde ich Ihnen ein Beispiel zeigen, wie Sie eine neue Methode zu einem vorhandenen Array zuweisen und eine andere Methode zum Ändern einzelner Wert in diesem Array:

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)); 

    } 

} 

Und die Ausgabe des obigen Programms:

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

Danke. Diese Arbeit. Könntest du bitte meinen Schnitt ansehen? – gnocci

Verwandte Themen