Stringvariableninhalt kürzen

Status
Nicht offen für weitere Antworten.
S

Sofa

Gast
Hi zusammen,

hab da ein kleines Problem...

Ich muss Daten automatisch aus einer Textdatei in eine SQL Datenbank schreiben. Jetzt kann es vorkommen, dass der Feldinhalt eines Tokens größer ist, als in der Datenbank erlaubt. (z. B. 35 Zeichen lang und es dürfen nur 30 Zeichen sein).

So jetzt meine Frage: Wie kann man einen Stringvariableninhalt auf die gewünschte Zeichenlänge kürzen?

MfG

Stefan
 

Murray

Top Contributor
String#subString( int hat gesagt.:
String#subString( int, int)

Returns a new string that is a substring of this string. The substring begins at the specified beginIndex and extends to the character at index endIndex - 1. Thus the length of the substring is endIndex-beginIndex.

Examples:

"hamburger".substring(4, 8) returns "urge"
"smiles".substring(1, 5) returns "mile"


Parameters:
beginIndex - the beginning index, inclusive.
endIndex - the ending index, exclusive.
Returns:
the specified substring.
Throws:
IndexOutOfBoundsException - if the beginIndex is negative, or endIndex is larger than the length of this String object, or beginIndex is larger than endIndex.
 
S

Sofa

Gast
Ja das klappt so weit schon, aber wenn weniger in der Variable steht als der EndIndex vorgibt, was ja durch aus bei so einer Automatisierung vorkommen kann, dann wird die Exception ausgelöst und mein Programm bleibt stehen...

Ich brauch also eine etwas flexiblere Lösung.

Trotzdem schon mal danke.

BITTE HELFT MIR ich komm net weiter...
 

Murray

Top Contributor
Sollte doch nicht so schwierig sein, oder:

Entweder:
Code:
final int maxlen = 30;

if ( str.length() > maxlen) str = str.substring( 0, maxLen);

Oder für Freunde des linearen Programmablaufs ohne explizite Verzweigungen:
Code:
final int maxlen = 30;

str = str.substring( 0, Math.min( str.length(), maxLen));


Die erste Variante enthält durch das doppelte Vorkommen der maximalen Länge eine gewissen Redundanz, die man tunlichst durch eine entsprechende Konstane beseitigen sollte.

Die zweite Variante ist durch die zusätzlichen Methodenaufrufe vermutlich etwas weniger effizient.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben