Look for particular sequences in sentences : String search « Data Type « Java






Look for particular sequences in sentences

Look for particular sequences in sentences
          
// : c12:AnalyzeSentence.java
// Look for particular sequences in sentences.
// From 'Thinking in Java, 3rd ed.' (c) Bruce Eckel 2002
// www.BruceEckel.com. See copyright notice in CopyRight.txt.

import java.util.StringTokenizer;

public class AnalyzeSentence {
  public static void main(String[] args) {
    analyze("I am happy about this");
    analyze("I am not happy about this");
    analyze("I am not! I am happy");
    analyze("I am sad about this");
    analyze("I am not sad about this");
    analyze("I am not! I am sad");
    analyze("Are you happy about this?");
    analyze("Are you sad about this?");
    analyze("It's you! I am happy");
    analyze("It's you! I am sad");
  }

  private static StringTokenizer st;

  private static void analyze(String s) {
    System.out.println("\nnew sentence >> " + s);
    boolean sad = false;
    st = new StringTokenizer(s);
    while (st.hasMoreTokens()) {
      String token = next();
      // Look until you find one of the
      // two starting tokens:
      if (!token.equals("I") && !token.equals("Are"))
        continue; // Top of while loop
      if (token.equals("I")) {
        String tk2 = next();
        if (!tk2.equals("am")) // Must be after I
          break; // Out of while loop
        else {
          String tk3 = next();
          if (tk3.equals("sad")) {
            sad = true;
            break; // Out of while loop
          }
          if (tk3.equals("not")) {
            String tk4 = next();
            if (tk4.equals("sad"))
              break; // Leave sad false
            if (tk4.equals("happy")) {
              sad = true;
              break;
            }
          }
        }
      }
      if (token.equals("Are")) {
        String tk2 = next();
        if (!tk2.equals("you"))
          break; // Must be after Are
        String tk3 = next();
        if (tk3.equals("sad"))
          sad = true;
        break; // Out of while loop
      }
    }
    if (sad)
      System.out.println("Sad detected");
  }

  static String next() {
    if (st.hasMoreTokens()) {
      String s = st.nextToken();
      System.out.println(s);
      return s;
    } else
      return "";
  }
} ///:~



           
         
    
    
    
    
    
    
    
    
    
  








Related examples in the same category

1.String Region Match DemoString Region Match Demo
2.PalindromePalindrome
3.Strings -- extract printable strings from binary file
4.Java Search String
5.Java String endsWith
6.Java String startsWith
7.Search a substring Anywhere
8.Starts with, ignore case( regular expressions )
9.Ends with, ignore case( regular expressions )
10.Anywhere, ignore case( regular expressions )
11.Searching a String for a Character or a Substring
12.Not found returns -1
13.If a string contains a specific word
14.Not found
15.if a String starts with a digit or uppercase letter
16.Search a String to find the first index of any character in the given set of characters.
17.Search a String to find the first index of any character not in the given set of characters.
18.Searches a String for substrings delimited by a start and end tag, returning all matching substrings in an array.
19.Helper functions to query a strings end portion. The comparison is case insensitive.
20.Helper functions to query a strings start portion. The comparison is case insensitive.
21.Wrapper for arrays of ordered strings. This verifies the arrays and supports efficient lookups.
22.Returns an index into arra (or -1) where the character is not in the charset byte array.
23.Returns an int[] array of length segments containing the distribution count of the elements in unsorted int[] array with values between min and max (range).
24.Returns the next index of a character from the chars string
25.Finds the first index within a String, handling null.
26.Finds the last index within a String from a start position, handling null.
27.Finds the n-th index within a String, handling null.
28.Case insensitive check if a String ends with a specified suffix.
29.Case insensitive check if a String starts with a specified prefix.
30.Case insensitive removal of a substring if it is at the begining of a source string, otherwise returns the source string.
31.Case insensitive removal of a substring if it is at the end of a source string, otherwise returns the source string.
32.Check if a String ends with a specified suffix.
33.Check if a String starts with a specified prefix.
34.Determine if a String is contained in a String Collection
35.Determine if a String is contained in a String Collection, ignoring case
36.Determine if a String is contained in a String [], ignoring case
37.Determine if a String is contained in a String [], ignoring case or not as specified
38.Determine if a String is contained in a String[]
39.Determines if the specified string contains only Unicode letters or digits as defined by Character#isLetterOrDigit(char)
40.Determining the validity of various XML names
41.Return the nth index of the given token occurring in the given string
42.Find the earliest index of any of a set of potential substrings.
43.Find the latest index of any of a set of potential substrings.
44.Fast String Search
45.Performs continuous matching of a pattern in a given string.
46.Count match