Как я могу редактировать определенные символы из строки в отдельном методе? - PullRequest
2 голосов
/ 11 марта 2019
public static String replaceExclamation(String userText){
   int i = 0;
   for ( i=0; i < userText.length(); ++i) {
      char currentChar = userText.charAt(i);
      if (currentChar == '!') {
         userText.charAt(i) = ".";
      }
   }
   return userText;
}

Я пытаюсь заменить все "!"в строке с символом «.»но я получаю неожиданную ошибку типа.
Что это значит и как я могу это исправить?

Кроме того, влияет ли тот факт, что userText из main вместо этого локального метода, на мою способность редактировать строку?

1 Ответ

2 голосов
/ 11 марта 2019

String является неизменным, если вы замените какой-либо символ в String, тогда с этим изменением будет создан новый объект String, поэтому я предпочитаю использовать StringBuilder для этого

public static StringBuilder replaceExclamation(StringBuilder userText){
  int i = 0;
 for ( i=0; i < userText.length(); ++i) {
  char currentChar = userText.charAt(i);
  if (currentChar == '!') {
     userText.setCharAt(i,'.');
    }
  }
  return userText;
}

Или вы можете использовать replace(char oldChar, char newChar)

String result = userText.replace('!', '.');

Или вы можете использовать replaceAll(String regex, String replacement)

String result = userText.replaceAll("!", ".");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...