# Strings addieren



## Guest (15. Nov 2006)

Guten Abend!!

Bitte kann mir jemand helfen?? Ich hab' ein Programm geschrieben, welches mir zwei Strings miteinander addiert. Doch das haut irgendwie nicht hin; bzw. er lässt mich den zweiten String nicht einlesen... Als Ausgabe bekomme ich 


Erste Zahl eingeben: 565565666989
Zweite Zahl eingeben:
Ergebnis   :
Noch einmal (n/j)


Vielen Dank für eure Hilfe!!
LG



```
import inout.*;

public class String1 {
	
	public static void main(String[] args) {
		String num1, num2, result;
		char choice;
		
		do {
			Out.print("Erste Zahl eingeben: "); 
			num1 = In.readString();
			Out.print("Zweite Zahl eingeben: "); 
			num2 = In.readString();
			Out.println();
			
			result = add(num1, num2);
			
			Out.println("Ergebnis   :" + result);
			
			Out.print("Noch einmal (n/j) ");
			choice = In.readChar();
		}while(choice == 'j');
		
	}
	
	static String add(String num1, String num2) {
		StringBuffer result = new StringBuffer();
		int num1Index = num1.length()-1;
		int num2Index = num2.length()-1;
		int num1Digit;
		int num2Digit;
		int overFlow = 0; //Überlauf; 0 am Anfang
		int resDigit;
		
		for (int i = 0; i < Math.max(num1.length(), num2.length()); i++) {
			if (num1Index < 0) {
				num2Digit = num2.charAt(num2Index) - '0';
				resDigit = num2Digit + overFlow;
				num2Index--;
			} else if (num2Index < 0) {
				num1Digit = num1.charAt(num1Index) - '0';
				resDigit = num1Digit + overFlow;
				num1Index--;
			} else {// ASSERT: num1Index >= 0 && num2Index >= 0
				num1Digit = num1.charAt(num1Index) - '0';
				num2Digit = num2.charAt(num2Index) - '0';
				resDigit = num1Digit + num2Digit + overFlow;
			}
			
			if (resDigit >= 10) {
				resDigit %= 10;
				overFlow = 1;
			} else {
				overFlow = 0;
			}
			
			result.insert(0, resDigit);
		}
		
		if (overFlow > 0) {
			result.insert(0, overFlow);
		}
		return result.toString();
	}
}
```


----------



## Wildcard (15. Nov 2006)

Da hst du's dir aber kompliziert gemacht  :shock: 
Mit der Integer Klasse kannst du Strings zu ints parsen und dann einfach addieren.
Was das eigentliche Problem ist, kann ich dir nicht sagen, da die Klassen In und Out keine Klassen der Java-Bibliothek sind.


----------



## Leroy42 (15. Nov 2006)

Und warum schreibst du nicht einfach:


```
static String add(String num1, String num2) {return num1 + num2;}
```
 :shock:


----------



## Guest (15. Nov 2006)

Danke, versuch' ich gleich mal!!!
Schönen Abend noch!!


----------



## Wildcard (15. Nov 2006)

Leroy42 hat gesagt.:
			
		

> Und warum schreibst du nicht einfach:
> 
> 
> ```
> ...


Damit werden die String konkateniert. Gast will glaube ich Strings die Integers darstellen nummerisch addieren.


----------



## marble (16. Nov 2006)

Integer.parseInt(String number)... exception abfangen nicht vergessen! - return num1+num2... das war göttlich


----------

