2015-07-07 3 views
0

Я хочу заменить ssn определенным символом. например:Заменить цифры символом в строке

public char filter = "a"; 
public String ssn = 123-45-6789 
public replace(string ssn){ 
    //replace ssn = aaa-aa-aaaa because filter = "a" 
} 

Может ли кто-нибудь дать мне представление о том, как это сделать, поскольку он имеет «-» внутри строки?

ответ

3

Если вы хотите заменить только цифры, попробуйте следующий код:

public String replace(string ssn) { 
    return ssn.replaceAll("[0-9]", "a"); 
} 

В регулярное выражение [0-9] определяет, какие символы должны быть заменены (каждый «символ» в диапазоне от 0 до 9, что означает: только цифры) ,

+0

Thank! он отлично работает – RLe

0

Вы не можете изменить строку, так как это неизменный класс. Но вы можете создать новую строку с замененными значениями. Так

  • создать StringBuidler
  • итерацию по всем характерами ССН (toCharArray() могут быть полезны здесь)
    • , если символ является цифра Append filter для строителя (Character.isDigit(char) приходит на ум)
    • если полукокс - (или без цифры) добавить '-' строителю
  • convert builder toString

Вы также можете попробовать использовать replaceAll и regex, которые будут соответствовать только цифрам.

2

Чтобы использовать регулярное выражение с заменой ALL(), вам нужно сделать свой фильтр строкой. Кроме того, вам нужно вернуть строку в функцию замены. Попробуйте следующее:

String filter = "a"; 
public String replace(String ssn) 
{ 
    return ssn.replaceAll("[0-9]",filter); 
} 
Смежные вопросы