# String mit Zahlen mit Tausendertrennzeichen versehen



## AssELAss (19. Feb 2014)

Hallo Leute, da ihr mir immer wunderbar weiterhelft frage ich erneut. 

Wie kann ich einem String der Zahlen enthält mit Tausendertrennzeichen versehen?
Gibt es eine Möglichkeit über Regular Expressions?

quasi ReplaceALL("", "")? oder mit format?

find leider nichts gescheites.


----------



## Barista (19. Feb 2014)

Welches Format hat denn der ursprüngliche String?


----------



## AssELAss (19. Feb 2014)

zb "2156,54+"
   oder auch "56,56-"


----------



## Machareder (19. Feb 2014)

schau mal hier:
Galileo Computing :: Java ist auch eine Insel - 4 Der Umgang mit Zeichenketten


----------



## CerO (19. Feb 2014)

Oder schau mal hier. Da hatte jemand mal das selbe gefragt

http://www.java-forum.org/java-basics-anfaenger-themen/133151-tausender-trennzeichen-setzen.html#post874773


----------



## Maskin (19. Feb 2014)

Galileo Computing :: Java ist auch eine Insel - 4 Der Umgang mit Zeichenketten

mal kurz googlen oder das hoffentlich bekannt "java ist eine insel" zu rate ziehen.

mfg

----- 
mal wieder das forum zu lange offen gelassen vor dem antworten


----------



## Barista (19. Feb 2014)

Wenn das Komma immer da ist, musst Du einfach nur die Anzahl Zeichen vor dem Komma zählen:


----------



## Barista (19. Feb 2014)

```
public class TausenderTrennZeichen
{

    public static void main( String[] args )
    {
        System.out.println(
                addTausenderTrennZeichen(
                        "2156,54+" ) );

        System.out.println(
                addTausenderTrennZeichen(
                        "156,54+" ) );

        System.out.println(
                addTausenderTrennZeichen(
                        "56,56-" ) );
    }

    private static String addTausenderTrennZeichen(
            final String originalNumStr )
    {
        final String originalNumStrTrimmed =
                originalNumStr.trim();

        final int countOfDigitsBeforeComma =
                originalNumStrTrimmed.indexOf(
                        ',' );

        if ( countOfDigitsBeforeComma < 4 )
        {
            return originalNumStrTrimmed;
        }

        final int posOfTausenderTrennZeichen =
                countOfDigitsBeforeComma - 3;

        return 
                originalNumStrTrimmed.substring(
                        //beginIndex
                        0 ,
                        //endIndex
                        posOfTausenderTrennZeichen ) +
                '.' +
                originalNumStrTrimmed.substring(
                        //beginIndex
                        posOfTausenderTrennZeichen );
    }

}
```


----------



## Barista (19. Feb 2014)

Mein Beispielcode erfüllt aber wirklich nur die von Dir geposteten beiden Beispiele,
für mehr Anforderungen musst Du eben mehr tun.


----------



## AssELAss (19. Feb 2014)

```
@Override
	public ArrayList<String> mccgetStringArray(IvodynBase vo) 
	{

		final CdotabGrolaArchivDB_Mitgliedskonten voStichproben = (CdotabGrolaArchivDB_Mitgliedskonten) vo;
		ArrayList<String> stichprobenlist = new ArrayList<String>();


if (!voStichproben.mccIsNullBETRAG()) 
		{
			
			voStichproben.getBETRAG();
			stichprobenlist.add(voStichproben.getBETRAG().format("%10s", voStichproben.getBETRAG().valueOf(voStichproben.getBETRAG().replaceAll("^0*", ""))));
				
		} 
		else
			stichprobenlist.add("");

return stichprobenlist;
		
		}
```


vll habe ich vergessen zu erwähnen, dass es sich hier um eine ArrayList handelt.


----------



## AssELAss (19. Feb 2014)

würd es vorziehen das ganze über regular expressions zu lösen.

keiner eine idee?


----------



## Barista (19. Feb 2014)

> vll habe ich vergessen zu erwähnen, dass es sich hier um eine ArrayList handelt.



Was hat das mit der ursprünglichen Frage zu tun?

Ist doch egal, woher der String kommt oder willst Du eine neue Frage aufmachen,
nämlich wie Du Werte in einer ArrayList änderst?


----------



## Barista (19. Feb 2014)

> würd es vorziehen das ganze über regular expressions zu lösen.



Habe Lösung, suche Problem.

Oder:

Wer nur einen Hammer kennt, für den ist alles ein Nagel.


----------



## AssELAss (19. Feb 2014)

ich weiss einfach nicht wie ich ansetzen soll.


----------



## jbo75 (14. Mrz 2014)

```
final DecimalFormat decimalFormat1 = new DecimalFormat("#,###,###.00");
final DecimalFormat decimalFormat2 = new DecimalFormat("#.00");
System.out.println(decimalFormat1.format(decimalFormat2.parse("2156,54-")));
```


----------

