G
Guest
Gast
Ich hab hier ein Programm, dass mir die Sozialversicherungsnummer überprüft... nur verstehe ich nicht, was das -48 bei charAt soll... kann mir das vielleicht jemand erklären?
Code:
import java.io.*;
public class Sozial
{
public static String getString()
throws IOException
{
BufferedReader buffin =
new BufferedReader(
new InputStreamReader(System.in)
);
String result = buffin.readLine();
return result;
}
// SozialversicherungsNummer prüfen
public static boolean checkSOZIAL(String sozial)
{
// Sonderzeichen durch einen leeren String
// ersetzen
sozial = sozial.replaceAll("-", "");
sozial = sozial.replaceAll(" ", "");
// Sozialversicherungsnummer-Nummer in einzelne Ziffern zerlegen
int b1 = (sozial.charAt(0)-48);
int b2 = (sozial.charAt(1)-48);
int b3 = (sozial.charAt(2)-48);
int b4 = 0;
int b5 = (sozial.charAt(4)-48);
int b6 = (sozial.charAt(5)-48);
int b7 = (sozial.charAt(6)-48);
int b8 = (sozial.charAt(7)-48);
int b9 = (sozial.charAt(8)-48);
int b10 = (sozial.charAt(9)-48);
if(sozial.charAt(3)=='X' || sozial.charAt(3)=='x')
{
b4 = 10;
}
else
{
b4 = sozial.charAt(3)-48;
}
// wirkliche Prüf-Ziffer errechnen
int pruef = ((3*b1 + 7*b2 + 9*b3 + 0*b4 + 5*b5 + 8*b6 + 4*b7 + 2*b8 + 1*b9 + 6*b10) % 11 );
// Mit der Prüfziffer der Sozialversicherungs-Nummer überprüfen
return (b4==pruef);
}
public static void main(String[] args)
throws IOException
{
boolean correct = false;
System.out.println("Pruefung der Sozialversicherungsnummer");
System.out.println("============");
while(correct == false)
{
System.out.println();
System.out.print("Sozialv-Nr. > ");
String sozial = getString();
System.out.println();
if(checkSOZIAL(sozial)==true)
{
System.out.println("Das ist eine Sozialversicherungsnummer.");
correct = true;
}
else
{
System.out.println("Das ist keine Sozialversicherungsnummer.");
correct = false;
}
}
// Programm beenden
System.out.println();
System.out.println("Please press Enter to continue...");
getString();
}
}