2016-05-12 7 views
-2

Ich bin ein Anfänger Coder und brauche etwas Hilfe. Ich versuche, die Ziffern einer Zahl entsprechend einer Zahl zu addieren, die der Anzahl der Ziffern entspricht, die ich verwenden kann. Ich verwende Eclipse Juno und verwende eine separate Textdatei für die Verwendung meiner Nummern. Obwohl es nicht viel das ist, was habe ich jetzt:Hinzufügen von Ziffern innerhalb einer Arraylist mit einer Richtlinie

public static void main(String[] args) throws IOException{ 

String token1 = ""; 
Scanner infile1 = new Scanner(new File("input.txt")); 
ArrayList<String> temps = new ArrayList<String>(); 
//Adding Input files to the Arraylist 
while(infile1.hasNext()){ 
    token1 = infile1.next(); 
     temps.add(token1);  
} 
infile1.close(); 
//Calling the Numbers from ArrrayList temps 
    for(int x = 0; x < temps.size(); x++) { 
System.out.println(x + " " + temps.get(x)); 
for(x = 0; x < temps.size(); x++){ 

} 
} 


    } 

} 

Die Zahlen sind 9.678.415 7, 9.678.415 6, 9.678.415 5, 9.678.415 4, 2.678.515 3, Nummer hinzuzufügen, Ziffern benutzen. Die Datei input.txt enthält keine Kommas

+0

Ich vergaß zu erwähnen, um die höchste Zahl Wert – LittleRising

+1

Die Beschreibung, was Sie tun möchten, ist nicht klar. Bitte zeigen Sie ein Beispiel für die Eingabe und auch für die erwartete Ausgabe. – AdrianHHH

+0

Die Beispielausgabe sollte 986541, 987641, 98765, 9876 und 875 – LittleRising

Antwort

1

Genau wie Sie dies tun, hängt davon ab, wie die Daten in der Datei aussieht. Sie sagen, es ist nicht durch Kommas begrenzt, also muss ich annehmen, dass sie durch Linien getrennt sind. Sie müssen die Werte innerhalb der Zeichenfolgen trennen und in int konvertieren; also sollte das unten tun was du versuchst, wenn ich die frage verstehe. (Vollständige Offenlegung, es ist schon eine Weile, da ich in Java geschrieben habe, und ich habe keine Möglichkeit, dieses Recht jetzt zu testen, stellen Sie sicher, ich habe keine grundlegende Syntax Fehler)

ArrayList<Integer> totalArray = ArrayList<Integer>(); 
for(String tStr : temps){ 
    int tempTotal = 0; 
    String[] numArray = tStr.split(" "); 
    for(int x = 0; x < Integer.parseInt(numArray[1]){ 
     int y = Integer.parseInt(numArray[0].substring(x,x+1)); 
     tempTotal += y; 
    } 
    totalArray.add(tempTotal); 
} 

Es sind wahrscheinlich bessere Wege, um den höchsten Wert zu erreichen, aber da ich schon eine Weile weg bin, werde ich es einfach so machen, wie ich es mir vorstellen kann.

int highestValue = 0; 
for (Integer x : totalArray){ 
    if(highestValue<=x){ 
     highestValue = x; 
    } 
} 
return highestValue; 
+0

P.S. Ich denke, dass die erweiterte for-Schleife, die ich in dieser Antwort verwende, nur in den Versionen 1.5 und höher verfügbar ist. Wir sind an diesem Punkt ziemlich weit davon entfernt und ich könnte mir vorstellen, dass die meisten Systeme eine Version später verwenden, aber ich dachte, dass Sie das vielleicht wissen müssen. –

Verwandte Themen