Search code examples
javastringreplaceall

How to write a replaceAll function java?


I'm trying to write a program that will allow a user to input a phrase (for example: "I like cats") and print each word on a separate line. I have already written the part to allow a new line at every space but I don't want to have blank lines between the words because of excess spaces. I can't use any regular expressions such as String.split(), replaceAll() or trim().

I tried using a few different methods but I don't know how to delete spaces if you don't know the exact number there could be. I tried a bunch of different methods but nothing seems to work.

Is there a way I could implement it into the code I've already written?

  for (i=0; i<length-1;) {
      j = text.indexOf(" ", i); 
      if (j==-1) {
          j = text.length(); 
      }
      System.out.print("\n"+text.substring(i,j));
      i = j+1; 
  }

Or how can I write a new expression for it? Any suggestions would really be appreciated.


Solution

  • You almost done all job. Just make small addition, and your code will work as you wish:

    for (int i = 0; i < length - 1;) {
      j = text.indexOf(" ", i);
    
      if (i == j) { //if next space after space, skip it
        i = j + 1;
        continue;
      }
    
      if (j == -1) {
        j = text.length();
      }
      System.out.print("\n" + text.substring(i, j));
      i = j + 1;
    }