Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.TextArea;
- import java.util.LinkedList;
- import javax.swing.JTextField;
- public class Input {
- public static void trajtoInputin(JTextField input, TextArea log, boolean buli){
- String str = input.getText(); // marrim inputin nga perdoruesi
- str = str.replaceAll("\\s+",""); // heqim hapesirat
- int pozBaraz = str.indexOf("="); // pozicioni i shenjes se barazimit
- if(pozBaraz != -1) {
- String f1 = str.substring(0,pozBaraz); // funksioni i majte
- String f2 = str.substring(pozBaraz+1, str.length()); // funksioni i djathte
- if (!f1.matches(".*[^A-Za-z+!()01].*") && !f2.matches(".*[^A-Za-z+!()01].*") ) {
- // kontrollo te dy funksionet nese kane karaktere te lejueshme
- // A-Z a-z + ! ( ) 0 1
- log.append(kontrolloSintaksen(f1)+" "+ buli +" " +kontrolloSintaksen(f2));//TO DO
- }
- else {
- log.append("\n\nINPUT ERROR\n\n");
- }
- }
- else {
- log.append("\n\nINPUT ERROR\n\n");
- }
- }
- public static String kontrolloSintaksen(String str) {
- //Do kontrollojme per karakterin '+'
- LinkedList<Integer> list = new LinkedList<Integer>();
- int temp;
- char character = '+';
- for(int i = 0; i < str.length(); i++){
- if(str.charAt(i) == character){
- list.add(i);
- }
- }
- if(list.size() < 4) { // Nese ka max 3 karaktere '+' dmth a + b + c + d => 4 terma
- for(int j = 0; j < list.size(); j++) {
- temp = list.get(j);
- if(temp == 0 || temp == str.length()-1 ) { // nese karakteri '+' ndodhet ne fillim ose ne fund
- return "\n\nINPUT ERROR\n\n";
- }
- else {
- if(str.charAt(temp-1) == '+' || str.charAt(temp-1) == '(' || str.charAt(temp-1) == '!') {
- //nese karakteri perpara '+' eshte '+' ose '(' ose '!'
- return "\n\nINPUT ERROR\n\n";
- }
- else {
- if(str.charAt(temp+1) == '+' || str.charAt(temp+1) == ')') {
- //nese karakteri pas '+' eshte '+' ose ')'
- return "\n\nINPUT ERROR\n\n";
- }
- //else vazhdon kodi me poshte
- }
- }
- }
- }
- else {
- return "\n\nINPUT ERROR\n\n";
- }
- //Do kontrollojme per karakteret '(' dhe ')'
- list = new LinkedList<Integer>();//pozicionet e kllapave '('
- LinkedList<Integer> pozicioneKllapash = new LinkedList<Integer>();//pozicionet e cifteve te kllapave
- char kllapM = '(';
- char kllapD = ')';
- for(int i = 0; i < str.length(); i++){
- if(str.charAt(i) == kllapD){
- if(list.size() == 0){
- return "\n\nINPUT ERROR\n\n";//ka nje kllape ')' teper
- }
- else {
- pozicioneKllapash.add(list.removeLast());//hiq kllapen '(' nga lista dhe shtoje te tjetra
- pozicioneKllapash.add(i);// shto kllapen ')' te lista
- }
- }
- else if(str.charAt(i) == kllapM){
- list.add(i);
- }
- }
- for(int i = 0; i< pozicioneKllapash.size(); i+=2) {//kontrollo nqs ka vtm nje karakter ose asnje midis kllapave, nqs po return "error"
- if(pozicioneKllapash.get(i) + 1 == pozicioneKllapash.get(i+1) || pozicioneKllapash.get(i) + 2 == pozicioneKllapash.get(i+1)){
- return "\n\nINPUT ERROR\n\n";
- }
- }
- //minimizojme '!' qe jane me shume se nje here
- //TO DO
- // Duhet te hiqen kllapat para se te behet return
- //TO DO
- return str;// funksioni i formatuar
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement