Umwandlung von char zu lange

Ich bin momentan dabei, eine big integer Klasse. Ich lese in zwei longs als Funktions-Argumente und-was ich tun will ist jede Zahl in der langen Lesen in zu besetzen, um einen index eines Arrays.

Ich habe dies durch die Umwandlung der langen, in einen string, dann char-array und speichern Sie Sie irgendwo vorübergehend. Dies funktioniert gut und beim Ausdruck druckt genau wie die Zahl gelesen. Nun, was ich will zu tun ist, fügen Sie Sie jetzt zu einem neuen array, und Sie haben Ihre Daten geben Sie als long. Ich habe zwei arrays, um sich mit diesem.

Problem ist, wenn ich versuche Besetzung der char zu lange, gibt es mir einen ganz anderen Wert. Es scheint, dass es die Umwandlung der char in seine eigene jeweilige Anzahl? Charakter Klasse, die nicht scheinen, um eine Möglichkeit der Umwandlung zu lange.

Was ist der beste Weg, dies zu tun?

EDIT: Es scheint, dass, wenn ich die langen arrays int-arrays und verwenden Sie dann den Charakter.getNumericValue(char ch) es funktioniert, indem es das array richtig.

Da ich Plane wieder eine lange, am Ende dieser Funktion sollte ich sicherstellen, dass diese arrays sind lang für die Sicherheit? Oder speichern Sie Sie als int-Werte in das array in Ordnung ist? Dank

public static long hugeMultiplication(long value1, long value2){
    System.out.println("originalvalue: "+value1);
    int lengthOfWordOne = String.valueOf(value1).length();
    int lengthOfWordTwo = String.valueOf(value1).length();
    System.out.println("length1: "+lengthOfWordOne);
    System.out.println("length2: "+lengthOfWordTwo);

    long[] numberOne = new long[lengthOfWordOne+1];
    long[] numberTwo = new long[lengthOfWordTwo+1];

    //make those longs into string to convert char array
    char[] tempValueOne = String.valueOf(value1).toCharArray();
    char[] tempValueTwo = String.valueOf(value2).toCharArray();

    //copy each value of a char array to long array and change to long again
    //this will set up the array having each number in it so we can do the multiplication
    for (int i = 0; i < tempValueOne.length; i++){
        numberOne[i] = (long) tempValueOne[i];
    }


    for (int i = 0; i < numberOne.length; i++){
        System.out.print(numberOne[i]);
    }
  • lengthOfWordTwo verwendet statt Wert1 von Wert2
InformationsquelleAutor magna_nz | 2015-05-02
Schreibe einen Kommentar