//******************************************* //* Author : Isakovic HAris * //* Matr.Num: 0325697 * //* e-mail : e0325697@student.tuwien.ac.at * //******************************************* import eprog.*; public class Compchar { public static void main (String args[]) { String erste = EprogIO.readWord(); // Erste String wird gelesen. String zweite = EprogIO.readWord(); // Zweite String wird gelesen. int index; // Hilfige integer Zahl fur manche operationen ins programm. String specStr = "?[]^"; // String von speciele Zeichen. int start; // Hilfige integer Zahl fur manche operationen ins programm. int end; // Hilfige integer Zahl fur manche operationen ins programm. String subStr; // Hilfige String fur ein Such Bereich Representation. String fall1 = "?"; // Hilfige String fur fall mit "?". char ind = '['; // Char [ char ind2 = ']'; // Char ] char ind3 = '^'; // Char ^ char ch1 = erste.charAt(0); // Erste char von erste String. // Ess muss einzige sein und muss kein lehre Platz sein. if (Character.isWhitespace(ch1) || erste.length() > 1) // Here wird uberprufen, ob dass erste String gultig ist. { // Wenn diese bedingungen sind erfult, wird es "FALSCHE EINGABE" ausdrucken. EprogIO.println("FALSCHE EINGABE"); System.exit(0); // Progoramm wird sich sofort ausschalten. } // Here wird das Programm zweite String uberprufen. Dass Printzip ist gleich wie bei dem obigen fall. if (zweite.length() < 1 || zweite.length() > 30 || Character.isWhitespace(ch1)) { EprogIO.println("FALSCHE EINGABE"); System.exit(0); } // Uberprufung von zweite string geht weiter. char ch; char slash = '\\'; if ( zweite.startsWith("[") && !zweite.endsWith("]")) // Da wird Programm uberprufen ob die schlsende Klammer felt. { EprogIO.println("FALSCHE EINGABE"); System.exit(0); } index = 0; // Index wird auf null gestellt // Here uberpruft Programm ein special Fall , wenn dass Suchbereich ist zwischen klammern. if (zweite.startsWith("[") && zweite.endsWith("]")) { if (zweite.charAt(1) == '^') // "start" und "end" sind die start und die end von Suchbereichs { start = zweite.indexOf(ind) + 2 ; // Wenn negatives Fall und Suchebereich wird von des drittes Zeichens uberprufen. end = zweite.lastIndexOf(ind2) - 1; // Ende wird ein Zeichen vor des Letztes sein. } else { start = zweite.indexOf(ind) + 1 ; // da ist normall fall und Suchberiech wird von des zweites Zeichens uberprufen. end = zweite.lastIndexOf(ind2) - 1; // Gleich wie in letztes Fall. } subStr = zweite.substring(start,end); // Here wird Suchbereich gestellt , wie ein substring von zweite String. index = 0; // Uberprufung von zweites String um Richtigkeit. Im zwei Falls mit Klamern. // Da steht zwei for loops , in erste es geth durch String fon special Zeichen //In di zweite loop geht Programm durch Suchbereich String und prufen es. for (int i = 0; i < specStr.length() ; i++) { ch = specStr.charAt(i); for (int j = 0; j < subStr.length(); j++) { if ( (j == 0 && subStr.charAt(j) == ch) || (subStr.charAt(j) == ch && subStr.charAt(j-1) != slash)) { EprogIO.println("FALSCHE EINGABE"); System.exit(0); } } } } // Here wird das Programm vergleichen zwei Strings im fall wann sie nur ein Zeichen enthelen. if (zweite.length() == erste.length() && !Character.isWhitespace(zweite.charAt(0)) && !zweite.equals(fall1)) { if (erste.equals(zweite)) { EprogIO.println("JA"); System.exit(0); } else { EprogIO.println("NEIN"); System.exit(0); } } else { //Wenn das zweite String ist gleich mit ? , dann sind die alle Vergleichungen positiv. if (zweite.equals(fall1)) { EprogIO.println("JA"); System.exit(0); } } // Verglaichung des erstes String mit das Suchbereich des zweites String. if (zweite.startsWith("[") && zweite.endsWith("]")) { if(zweite.charAt(1) != ind3) // Normal Fall mit zwei Klamern und Suchebegrief. { start = zweite.indexOf(ind); end = zweite.lastIndexOf(ind2); subStr = zweite.substring(start,end); if (subStr.indexOf(erste,0) != -1) // Prufung ob das Substring enthalt erste String. { EprogIO.println("JA"); System.exit(0); } else { EprogIO.println("NEIN"); System.exit(0); } } else // Zweite Fall mit negativer Vergleich { start = zweite.indexOf(ind3); end = zweite.lastIndexOf(ind2); subStr = zweite.substring(start,end); if (subStr.indexOf(erste,0) != -1) { EprogIO.println("NEIN"); System.exit(0); } else { EprogIO.println("JA"); System.exit(0); } } } //Fall mit dem backslash wie ein Zeichen indikator , fur Vergleich der spezialer Zeichen. if ( zweite.startsWith("\\") && zweite.length() == 2) { if (erste.charAt(0) == zweite.charAt(1)) { EprogIO.println("JA"); System.exit(0); } else { EprogIO.println("NEIN"); System.exit(0); } } else { EprogIO.println("FALSHE EINGABE"); System.exit(0); } } }
Fr Jul 30 13:54:24 CEST 2021
patent_button.gif valid-html401.png elektra.jpg fsfe-logo.png valid-css.png vim.gif anybrowser.gif