Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Remove certain characters from string [duplicate]

I want to create a program that gives the number of characters, words, etc... in a user-inputted string. To get the word count I need to remove all the periods and commas form a string. So far I have this:

import javax.swing.JOptionPane;
public class WordUtilities
{
   public static void main(String args[])
   {
      {
      String s = JOptionPane.showInputDialog("Enter in any text.");

      int a = s.length();
      String str = s.replaceAll(",", "");
      String str1 = str.replaceAll(".", "");
      System.out.println("Number of characters: " + a);
      System.out.println(str1);
      }
   }
}

But in the end I get only this:

Number of characters: (...)

Why is it not giving me the string without the commas and periods? What do I need to fix?

like image 467
f3d0r Avatar asked Dec 31 '13 18:12

f3d0r


2 Answers

You can use:

String str1 = str.replaceAll("[.]", "");

instead of:

String str1 = str.replaceAll(".", "");

As @nachokk said, you may want to read something about regex, since replaceAll first parameter expects for a regex expression.

Edit:

Or just this:

String str1 = s.replaceAll("[,.]", "");

to make it all in one sentence.

like image 147
Christian Tapia Avatar answered Oct 19 '22 10:10

Christian Tapia


You can just use String#replace() instead of replaceAll cause String#replaceAll

Replaces each substring of this string that matches the given regular expression with the given replacement.

So in code with replace is

 str = str.replace(",","");
 str = str.replace(".","");

Or you could use a proper regular expression all in one:

str = str.replaceAll("[.,]", "");
like image 44
nachokk Avatar answered Oct 19 '22 09:10

nachokk