Advertisement
Guest User

Untitled

a guest
Dec 15th, 2019
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.46 KB | None | 0 0
  1. package com.company;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5. import java.util.Scanner;
  6. import java.util.regex.Matcher;
  7. import java.util.regex.Pattern;
  8.  
  9. public class main {
  10.  
  11.     private static String[] KEY_WORDS = {
  12.             "int",
  13.             "float",
  14.             "double",
  15.             "long",
  16.             "string",
  17.             "!=",
  18.             "==",
  19.             "=",
  20.             ";",
  21.             "(",
  22.             ")",
  23.             "{",
  24.             "}",
  25.             "[",
  26.             "]"
  27.     };
  28.     public static void main(String[] args) {
  29.         Scanner in = new Scanner(System.in);
  30.         System.out.print("Input the string: ");
  31.         String str = in .nextLine();
  32.         System.out.print("Variables count: " + count_Variables(str) + "\n");
  33.  
  34.         WordIndexer wordIndexer = new WordIndexer();
  35.         int keyCounter=0;
  36.         for (int index=0;index<KEY_WORDS.length;index++) {
  37.         List<Integer> actualResult = wordIndexer.findWord(str, KEY_WORDS[index]);
  38.             for (int a=0;a<actualResult.size();a++){
  39.                 System.out.println("Keyword here -->"+str.substring(actualResult.get(a)));
  40.                 System.out.println("Keyword: "+KEY_WORDS[index]);
  41.                 System.out.println();
  42.             }
  43.             keyCounter+=actualResult.size();
  44.         }
  45.         System.out.println("Number of kyewords: " +keyCounter);
  46.     }
  47.     public static class WordIndexer {
  48.         public List<Integer> findWord(String textString, String word) {
  49.             List<Integer> indexes = new ArrayList<Integer>();
  50.             String lowerCaseTextString = textString.toLowerCase();
  51.             String lowerCaseWord = word.toLowerCase();
  52.             int wordLength = 0;
  53.  
  54.             int index = 0;
  55.             while(index != -1){
  56.                 index = lowerCaseTextString.indexOf(lowerCaseWord, index + wordLength);  // Slight improvement
  57.                 if (index != -1) {
  58.                     indexes.add(index);
  59.                 }
  60.                 wordLength = word.length();
  61.             }
  62.             return indexes;
  63.         }
  64.     }
  65.     public static int count_Variables(String str) {
  66.         Pattern p = Pattern.compile("\\$[^\\s\\,\\$]+");
  67.         Matcher m = p.matcher(str);
  68.         int varCount=0;
  69.         while (m.find()) {
  70.             varCount++;
  71.             System.out.println("Found a variable " + m.group());
  72.         }
  73.  
  74.  
  75.         return varCount; // returns 0 if string starts or ends with space " ".
  76.     }
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement