Download benchmarks/java/IbanValidator.java from SevdanurGenc/LLM-Automated-Test-Generation-Agent: direct link, hf CLI and curl.
- Browser
- Download file 1.86 kB
-
https://huggingface.co/SevdanurGenc/LLM-Automated-Test-Generation-Agent/resolve/main/benchmarks/java/IbanValidator.java
- Command line
-
hf download hf://SevdanurGenc/LLM-Automated-Test-Generation-Agent/benchmarks/java/IbanValidator.java
-
curl -L -o IbanValidator.java https://huggingface.co/SevdanurGenc/LLM-Automated-Test-Generation-Agent/resolve/main/benchmarks/java/IbanValidator.java
1.86 kB
| /** | |
| * Türkiye IBAN doğrulayıcı: uzunluk (26), ülke kodu, ayrılmış hane ve ISO 13616 mod-97 kontrolü. | |
| * Biçim: TR + 2 kontrol hanesi + 5 hane banka kodu + 1 ayrılmış hane ('0') + 16 hane hesap numarası. | |
| */ | |
| public class IbanValidator { | |
| public static String normalize(String iban) { | |
| if (iban == null) { | |
| throw new IllegalArgumentException("IBAN boş olamaz"); | |
| } | |
| return iban.replace(" ", "").toUpperCase(); | |
| } | |
| public static boolean isValid(String iban) { | |
| String s = normalize(iban); | |
| if (s.length() != 26 || !s.startsWith("TR")) { | |
| return false; | |
| } | |
| if (s.charAt(9) != '0') { | |
| return false; | |
| } | |
| for (int i = 2; i < s.length(); i++) { | |
| if (!Character.isDigit(s.charAt(i))) { | |
| return false; | |
| } | |
| } | |
| return mod97(s.substring(4) + s.substring(0, 4)) == 1; | |
| } | |
| static int mod97(String s) { | |
| int r = 0; | |
| for (char c : s.toCharArray()) { | |
| int v = Character.isLetter(c) ? c - 'A' + 10 : c - '0'; | |
| r = v >= 10 ? (r * 100 + v) % 97 : (r * 10 + v) % 97; | |
| } | |
| return r; | |
| } | |
| public static String bankCode(String iban) { | |
| String s = normalize(iban); | |
| if (!isValid(s)) { | |
| throw new IllegalArgumentException("Geçersiz IBAN: " + iban); | |
| } | |
| return s.substring(4, 9); | |
| } | |
| /** Dörder karakterlik gruplar hâlinde yazar: "TR33 0006 1005 ...". */ | |
| public static String format(String iban) { | |
| String s = normalize(iban); | |
| StringBuilder b = new StringBuilder(); | |
| for (int i = 0; i < s.length(); i++) { | |
| if (i > 0 && i % 4 == 0) { | |
| b.append(' '); | |
| } | |
| b.append(s.charAt(i)); | |
| } | |
| return b.toString(); | |
| } | |
| } | |