Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Scanner;
- public class cl {
- public static void main(String[] args) {
- while(true){
- Scanner sc = new Scanner(System.in);
- String str1,str2;
- boolean stringfound = true;
- System.out.print("Enter input string: ");
- str1 = sc.next();
- System.out.print("Enter search string: ");
- str2 = sc.next();
- while(str2.length() > 1 && str2.charAt(1) == '*')
- {
- if(str2.length() > 2)
- str2 = str2.substring(2);
- else
- {
- str2 = "";
- System.out.println("Search string matches input string.");
- }
- }
- /////////////////////////////////////////////////////////////////////////
- // input validity test //
- ////////////////////////////////////////////////////////////////////////
- if(str1.length() > 0 && str2.length() > 0)
- {
- if(str2.charAt(0) != '+' && str2.charAt(0) != '*')
- {
- boolean validstr = true;
- //Test for repeating signs
- for(int y = 0; y < str2.length()- 1; y++)
- {
- if((str2.charAt(y) == '*' || str2.charAt(y) == '+') &&
- (str2.charAt(y+1) == '*' || str2.charAt(y+1) == '+'))
- {
- validstr = false;
- }
- }
- if(validstr)
- {
- for(int i = str1.length() - 1; i > 0 ; i--)
- {
- /////////////////////////////////////////////////////////////////////////
- // suspect substring test //
- ////////////////////////////////////////////////////////////////////////
- stringfound = true;
- for(int j = str2.length() - 1; j >= 0 && stringfound ; j--)
- {
- if(str2.charAt(j) == str1.charAt(i))
- {
- i--;
- }
- else
- {
- if(str2.charAt(j) == '*')
- {
- if(j == str2.length() - 1)
- {
- while(i > 0 && str1.charAt(i) != str2.charAt(j-1))
- i--;
- if(i == 0 && str1.charAt(i) != str2.charAt(j-1))
- i = str1.length() - 1;
- }
- while(i > 0 && str1.charAt(i) == str2.charAt(j-1))
- {
- i--;
- }
- j--;
- }
- else if(str2.charAt(j) == '+')
- {
- if(j == str2.length() - 1)
- {
- while(i > 0 && str1.charAt(i) != str2.charAt(j-1))
- i--;
- }
- if(str1.charAt(i) != str2.charAt(j-1))
- stringfound = false;
- while(i > 0 && str1.charAt(i) == str2.charAt(j-1))
- {
- i--;
- }
- j--;
- }
- else if(j == str2.length()-1)
- {
- while(i > 0 && str1.charAt(i)!= str2.charAt(j))
- i--;
- if(i == 0 && str1.charAt(i)!= str2.charAt(j))
- stringfound = false;
- j++;
- }
- else
- {
- stringfound = false;
- }
- }
- }
- if(stringfound)
- {
- System.out.println("Search string matches input string.");
- break;
- }
- }
- }
- if(!stringfound)
- System.out.println("Search string doesn't match input string.");
- }
- else
- {
- System.out.println("Invalid search string.");
- }
- }
- else if(str2.length() != 0)
- {
- System.out.println("Invalid search string.");
- }
- /////////////////////////////////////////////////////////////////////////
- //End input validity test End//
- ////////////////////////////////////////////////////////////////////////
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement