Skip to content
Advertisement

How to filter string for unwanted characters using regex?

Basically , I am wondering if there is a handy class or method to filter a String for unwanted characters. The output of the method should be the ‘cleaned’ String. Ie:

String dirtyString = "This contains spaces which are not allowed"

String result = cleaner.getCleanedString(dirtyString);

Expecting result would be:

"Thiscontainsspaceswhicharenotallowed"

A better example:

String reallyDirty = " this*is#a*&very_dirty&String"

String result = cleaner.getCleanedString(dirtyString);

I expect the result to be:

"thisisaverydirtyString"

Because, i let the cleaner know that ‘ ‘, ‘*’, ‘#’, ‘&’ and ‘_’ are dirty characters. I can solve it by using a white/black list array of chars. But I don’t want to re-invent the wheel.

I was wondering if there is already such a thing that can ‘clean’ strings using a regex. Instead of writing this myself.

Addition: If you think cleaning a String could be done differently/better then I’m all ears as well of course

Another addition: – It is not only for spaces, but for any kind of character.

Advertisement

Answer

Edited based on your update:

dirtyString.replaceAll("[^a-zA-Z0-9]","")
User contributions licensed under: CC BY-SA
4 People found this is helpful
Advertisement