Bestimmte Werte nicht beachten

Status
Nicht offen für weitere Antworten.

FlaVa09

Mitglied
Guten Tag,

ich hab da mal ne frage:

Ist es möglich bei einem String wie z.B. "00005321_3546" die ersten Nullen wegzulassen? Also das diese nicht beachtet werden.

Es soll sich also durchs anklicken eines Links(irgendeine Beleg-Nr) das dazugehörige PDF öffnen(also irgendeine Rechnung oder sonst was) öffnen.

String key = request.getParameter("key");
String mandant = key.substring(0, key.indexOf("_"));
key = key.substring(key.indexOf("_") + 1, key.length());
String belegnummer = key.substring(0, key.indexOf("_"));


Im Key ist also diese Beleg-Nr gespeichert und nun soll das so weitergeschrieben werden, dass er bei "5321_3546" anfängt zu lesen. Der scheint wegen den Nullen irgendwelche Probleme zu bekommen.

Dachte da an einer Trim() methode, aber irgendwie klappts bei mir nicht.

Hoffe das Problem ist erkannt.

Danke schonmal!
 
Code:
public class Test
{
    public static void main(String[] args)
        throws Exception
    {

        String key = "000000000010";
        key = key.replaceAll("^0+", "");
        System.out.println(key);
    }
}
das ^ sorgt dafür, dass nur Nullen am Anfang entfernt werden
 
Du könntest eine Schleife programmieren, die deinen key Zeichen für Zeichen mittels key.getCharAt(...) einliest.
Diese Zeichen addierst du solange nicht zu deinem neuen String dazu bis du ein anderes Zeichen als '0' erhälst.
Ab dann addierst du auf. Dann sind die führenden Nullen weg.

Kannst schön in ne Funktion verpacken.
 
Das gilt aber dann auch nur für diese eine bestimmte Zahl oder?

Also wenn ich nun zehn links habe mit versch. Nr., dann kann ich ja bei

String key =nicht "00000000010" eingeben,, weil dann rechnet er ja nur für diese eine Zahl.
 
Weisswurst hat gesagt.:
Du könntest eine Schleife programmieren, die deinen key Zeichen für Zeichen mittels key.getCharAt(...) einliest.
Diese Zeichen addierst du solange nicht zu deinem neuen String dazu bis du ein anderes Zeichen als '0' erhälst.
Ab dann addierst du auf. Dann sind die führenden Nullen weg.

Kannst schön in ne Funktion verpacken.

Ja das habe ich mir schon gedacht 🙂 Dachte ich könnte glimpflicher aus der sache rauskommen 🙂


Das Ding ist nur, wenn er die Zahl "0" dann irgendwo in der Mitte bekommt. Dann lässt er die natürlich weg. Ist mir mal aufgefallen.

Gibt's da nicht auch irgendnen Befehl mit <long.parse...sodass man den int wert dann mit stringofvalue() auseinander nimmt??
 
> Das gilt aber dann auch nur für diese eine bestimmte Zahl oder?

für welche sonst?
selbstverständlich musst du deinen key da eingeben 😉

wenn du mehrere Keys in einem String hast, dann musst du die doch sowieso schon vorher auftrennen


> Das Ding ist nur, wenn er die Zahl "0" dann irgendwo in der Mitte bekommt. Dann lässt er die natürlich weg. Ist mir mal aufgefallen.

was du ja einfach beheben kannst, merke dir in einer boolen-Variable,
ob du noch am Anfang oder nach dem ersten Nicht-0-Zeichen bist

> Gibt's da nicht auch irgendnen Befehl

gibts auch, schaue dir die Klasse Long an
 
SlaterB hat gesagt.:
> Das Ding ist nur, wenn er die Zahl "0" dann irgendwo in der Mitte bekommt. Dann lässt er die natürlich weg. Ist mir mal aufgefallen.

was du ja einfach beheben kannst, merke dir in einer boolen-Variable,
ob du noch am Anfang oder nach dem ersten Nicht-0-Zeichen bist

Jo, genau so meinte ich das 🙂
 
Mhh...irgendwie komm ich nicht drauf.

<public static long parseLong(String s,
int radix)
throws NumberFormatException

Naja und nu?

String wäre bei mir dann key?
und was ist int?

Wäre mal schön wenn einer den code aufschreiben könnte geh kaputt hier 🙁
 
wo hast du das denn her?
wenn aus der API, dann steht doch eine Zeile drüber parseLong(String) ohne int-Parameter,
nimm diese Operation

und bisschen selber denken schadet nie
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben