Bloggs Computer

Methode remove the leading 0

Eines der Geheimnisse der Informatik ist der Umgang mit führenden Nullen in einem Feld. Nach Ferien in den USA weiss ich jetzt wieder, warum ich Host-Systeme trotz allem mag. Mein Card-Issuer prozessiert seine Kreditkarten auf einem Host-basierten System genannt TS2, welches von TSYS bereitgestellt wird.

Dieses hat mir eines der Probleme, welches man heute mit einer Europäischen Kreditkarte in den USA haben kann gelöst. Das Problem: Beim Tanken wird zur Kontrolle die Postleitzahl eingegeben. Und zwar als 5-stelliger Code. Ist bei einer Postleitzahl in der Schweiz ein Problem. Nur vier Stellen einzugeben verhindert das Terminal. Wenn man aber die Postleitzahl um eine führende Null ergänzt, dann funktioniert dies bei diesen Karten.

Andere Card-Issuer haben damit so ihre Probleme und man muss jedes Mal in den Laden gehen und sich einen Betrag freischalten lassen.

Ursache dafür: Host-Systeme können mit führenden Nullen in numerischen Feldern umgehen. Andere Systeme kämpfen damit ein wenig mehr.

Da ich in einer Versuchreihe genügend Karten ausprobiert habe, fand ich es schön, mal einen Vorteil von bewährter Technologie zu sehen.

Selbstverständlich ist die Frage von führenden Nullen und dem Umgang damit ein spannendes Thema der Informatik. Sei es nun im Excel ein 

TRIMLEFT([FieldName],"0") 

Oder im Java eine Routine wie die folgende: 

// Java program to remove leading/preceding zeros 
// from a given string
import java.util.Arrays;
import java.util.List;
 
/* Name of the class to remove leading/preceding zeros */
class RemoveZero
{
public static String removeZero(String str)
{
// Count leading zeros
int i = 0;
while (str.charAt(i) == '0')
i++;

// Convert str into StringBuffer
StringBuffer sb = new StringBuffer(str);
 
// The  StringBuffer replace function removes
// i characters from given index (0 here)
sb.replace(0, i, "");
 
return sb.toString();  // return in String
}
 
// Driver code
public static void main (String[] args)
{
String str = "00000123569";
str = removeZero(str);
System.out.println(str);
}
}

Es bleibt auch immer die Frage, ob die Eingabe ein String oder ein Numeric war und ob wirklich immer die führenden Nullen entfernt werden sollen. Hierzu mehr von Microsoft hier.

0 Kommentare

Schreibe einen Kommentar