Advertisement
Guest User

Untitled

a guest
Jan 28th, 2020
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.79 KB | None | 0 0
  1. package sample;
  2.  
  3. import javafx.event.ActionEvent;
  4. import javafx.scene.control.ListView;
  5.  
  6. public class Controller {
  7.     public ListView lstIsbnKorrekt;
  8.     public ListView lstISBN;
  9.     public ListView lstIsbnFalsch;
  10.  
  11.     private String[] isbnList = {"978-3-7657-2781 8", "9783442546381", "978-3453152205", "978 783442 416523", "978-3770436385", "978-3770436384"};
  12.  
  13.     public void initialize() {
  14.         for (String s : isbnList) {
  15.             lstISBN.getItems().add(s);
  16.         }
  17.     }
  18.  
  19.     public void actStart(ActionEvent actionEvent) {
  20.         for (int i = 0; i < lstISBN.getItems().size(); i++) {
  21.             String isbn = (String) lstISBN.getItems().get(i);
  22.             if (isCorrectISBN(isbn)) {
  23.                 lstIsbnKorrekt.getItems().add(isbn);
  24.             } else {
  25.                 lstIsbnFalsch.getItems().add(isbn);
  26.             }
  27.         }
  28.     }
  29.  
  30.     private boolean isCorrectISBN(String string) {
  31.         char[] isbn = string.replaceAll("[- ]", "").toCharArray();
  32.  
  33.         if (isbn.length != 13) {
  34.             return false;
  35.         }
  36.  
  37.         int ausgelesenePruefziffer;
  38.         if (isbn[12] == 'X') {
  39.             ausgelesenePruefziffer = 10;
  40.         } else {
  41.             ausgelesenePruefziffer = Character.getNumericValue(isbn[12]);
  42.         }
  43.  
  44.         int generiertePruefziffer = generierePruefziffer(isbn);
  45.  
  46.         if (ausgelesenePruefziffer == generiertePruefziffer) {
  47.             return true;
  48.         } else {
  49.             return false;
  50.         }
  51.     }
  52.  
  53.     private int generierePruefziffer(char[] isbn) {
  54.         int summe = 0;
  55.         int[] gewichtung = {1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3};
  56.         for (int i = 0; i < 12; i++) {
  57.             summe += Character.getNumericValue(isbn[i]) * gewichtung[i];
  58.         }
  59.         return 10 - summe % 10;
  60.     }
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement