Datentypen Ein Integer Feld in einen String wandeln ohne Nullenunterdrückung

didi04

Mitglied
Hallo zusammen,
die meisten von Euch werden jetzt wahrscheinlich lachen, aber ich habe schon halb Google abgegrast und finde einfach keine Lösung. Vllt. kann mir jemand helfen.

Ich habe ein 10 stelliges integer feld. der inhalt ist variabel zb :

1234567890 oder
0123456791 oder
0000445500

wenn keine führende Null vorhanden ist funktioniert das wandeln in einen String mit
set und get. Sobald aber eine führende Null vorhanden ist werden diese abgeschnitten bzw. im letzten Beispiel steht dann im String :
4455000.

Mit String.Valueof habe ich versucht das zu beheben, funktioniert aber nicht. Bin einigermassen ratlos.
Hat jemand einen Vorschlag ?

vg
Dietmar
 
Du könntest ne Funktion bauen die die abgeschnittenen Nullen einfach wieder dran baut

Java:
           String fuhrendeNullenauffullen(String string,int stellen){
	    while (string.length() < stellen) {
	        string = "0" + string;
	    }
	    return string; 
			
	}

Vll nicht die eleganteste lösung aber es würde das gewünschte ergebnis bringen:reflect:
 
Ich habe ein 10 stelliges integer feld
ich verstehe deine Frage nicht???:L

Meinst du so was?
Java:
    @Test
    public void test() {
	String s = "0000445500";
	int value = Integer.valueOf(s);
	String txt = String.format("%10s", "0000000000" + value);
	String trim = txt.substring(txt.length() - 10);
	assertEquals(10, trim.length());
	assertEquals("0000445500", trim);
    }
 
WAS wandelst du in einen String um? Einen Zahl? Die hat keine führenden Nullen.
Einen anderen String? Warum dann die Umwandlung?

Bitte beschreib doch mal ein einem kleinen Beispiel, was du machst und an welcher Stelle es nicht so funktioniert, wie du erwartest.
 
Zuerst einmal ein herzliches Danke an die Mühe, die Ihr Euch macht. Ich habe es falsch ausgedrückt,
der Input ist INT Feld das natürlich (da habe ich mich von COBOL verleiten lassen - muss vorweg schicken, bin ich JAVA blutigster Anfänger) wie folgt ausschaut :

4500
8504456
11112233

das Zielfeld ist ein String, der aber mit 10 Stellen ausgegeben werden soll. Also wie folgt :

0000004500
0008504456
0011112233

Die Funktion oder sagt man Methode von Basti90 funktioniert super !! Ich habe nur noch ein Problem :

Wenn er die Funktion durchläuft hat er bei 0 zb. 0000000000 drin stehen, nachdem er mir den Wert zurück geliefert hat,
steht wieder 0 drin. Ich raffs einfach nicht. Hier der Aufruf :

Java:
       String zw_sv4u = (String.valueOf(spaxf40.getXf40sv4u()));
       int anz_stellen = 10;
       fuhrendeNullenauffuellen(zw_sv4u, anz_stellen);

Hier die Funktion oder Methode :

Java:
    private String fuhrendeNullenauffuellen(String zw_sv4u, int stellen)

    {
        while (zw_sv4u.length() < stellen)
            {       
                zw_sv4u = "0" + zw_sv4u;   
            }
           return zw_sv4u;
        
    }

Sorry wenn ich mich vllt. sehr umständlich ausdrücke, aber man muss die neuen Dinge in Java erstmal sacken lassen (können) 🙂

vlg dietmar
 
ich glaub du hast ein leichtes verständnisproblem (bei dir oder bei mir:lol🙂 mit dem return

um in zw_sv4u die 0en zu ergänzen musst du es so schreiben
Java:
           String zw_sv4u = (String.valueOf(spaxf40.getXf40sv4u()));
           int anz_stellen = 10;
           zw_sv4u =fuhrendeNullenauffuellen(zw_sv4u, anz_stellen);

Da die funktion die übergebenen Variablen an sich unberührt lassen
 

Zurück
Oben