Monday, December 22, 2014

How to separate words from String in java. Break the String in meaningful sentence.

6:39 PM

Problem : Given an input string , separate the input string into a space-separated sequence of dictionary words if possible. For example, if the input string is "helloworld" then we would return the string "hello world" as output.

Assume you are given a Dictionary against which you can check the validity of words. Print "String can not be separated" if it contains numbers , any special character or any invalid combination of character/word.

Solution in java


/**
 * Created by IN00474 on 22-12-2014.
 */

import java.util.*;
public class StringToSentence {

    static List<String> l = new ArrayList<String>();
    static String wordToCheck = "";

    public static void main(String[] args) {
  if (args.length==0)
  {
   System.out.println("Pass the input String");
   System.exit(1);
  }
        String inputString = args[0];
        if (inputString.matches("[a-zA-Z]+")) {
            for (int i = 0; i < inputString.length(); i++) {
                wordToCheck = wordToCheck + inputString.charAt(i);
                if (checkInDictionary(wordToCheck)) {
                    l.add(wordToCheck);
                    wordToCheck = "";
                }
                else
                {
                    if(i==inputString.length()-1)
                    {
                        System.out.println("String can not be sorted");
                        return;
                    }

                }
            }
            displaySentence(l);
        } else {
            System.out.println("String can not be sorted");
        }
    }

    public static boolean checkInDictionary(String wordToCheck) {
        ArrayList al = new ArrayList();
        al.add("hello");
        al.add("world");
        if (al.contains(wordToCheck)) {
            return true;
        } else {
            return false;
        }
    }

    public static void displaySentence(List l) {
        Iterator i = l.iterator();
        while (i.hasNext()) {
            System.out.print((String) i.next() + " ");
        }
    }

}



Please note this code was tested against multiple use cases and return correct results, let us know if any of the use case if fails to pass.


Run time result



0 comments :

Post a Comment

 

© 2014 DieHardTechy . All rights resevered. Designed by Diehardtechy