Nfear правильно с удалением «х» от
char c = phrase.charAt(num1, 'x');
Вы также можете рассмотреть, если заявление, чтобы убедиться, что вы не до конца с «Thisxisxaxpencil» в качестве ответа. Если, конечно, вы не справитесь с этим выходом. Смотрите ниже код ....
import java.util.Random;
public class Changing {
public static void main(String[] args) {
Random generator = new Random();
int num1;
String phrase = "This is a pencil";
int len = phrase.length();
char c = ' ';
while(c == ' '){
num1 = generator.nextInt(len);
c = phrase.charAt(num1);
}
String mut1 = phrase.replace(c, 'x');
System.out.println(mut1);
}
редактировать Вы можете также рассмотреть вопрос о создании массива символов вместо .Привернуть()
Это сделает это так, вы не замените каждый 's' или каждое 'i' в вашей строке. См ниже код ...
public static void main(String[] args) {
Random generator = new Random();
int num1 = 0;
String phrase = "This is a pencil";
int len = phrase.length();
char c = ' ';
while(c == ' '){//to ensure we don't x out a space
num1 = generator.nextInt(len);
c = phrase.charAt(num1);
}
char[] phraseArray = phrase.toCharArray();//make string into a char[]
phraseArray[num1] = 'x';//replace char the random char index with 'x' This replaces the random letter for you.
String mut1 = new String(phraseArray);//change your char[] back into a string
System.out.println(mut1);//print results
}
В чем проблема? – Jens
@Jens - this: 'char c = phrase.charAt (num1, 'x');': P – TheLostMind
Как указано в @TheLostMind, вы на 100% уверены в том, что делает метод .charAt для строки? –