大家好,我是Java新手,我的代码需要帮助
/**
* @(#)Changing.java
*
*
* @author
* @version 1.00 2015/2/27
*/
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();
num1 = generator.nextInt(len);
char c = phrase.charAt(num1, 'x');
String mut1 = phrase.replace(c, 'x');
System.out.println(mut1);
}
}
我需要让progrom选择一个随机字母并将其更改为X
谢谢
答案 0 :(得分:1)
Nfear从
中移除'x'是正确的char c = phrase.charAt(num1, 'x');
您可能还需要考虑if语句以确保不会结束 “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);
}
修改的 您可能还想考虑创建一个char数组而不是使用.replace()
这将使你不会替换字符串中的每个'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
}
答案 1 :(得分:0)
将char c = phrase.charAt(num1, 'x');
更改为char c = phrase.charAt(num1);
没有charAt方法需要两个参数。
答案 2 :(得分:0)
在环顾四周并处理好几个问题之后,我发现StringBuilder()
完全符合您的要求。
Random generator = new Random();
int num1 = 0;
StringBuilder phrase = new StringBuilder("This is a pencil");
int len = phrase.length();
char c = ' ';
while (c == ' ') {
num1 = generator.nextInt(len);
c = phrase.charAt(num1);
}
phrase.setCharAt(num1, 'X'); // <-- i think this is a nice way to do it.
//String sub1 = phrase.substring(0, num1) + 'X' + phrase.substring(num1+1); // Not so elegant as StringBuilder().
System.out.println(phrase);