选择一个随机字母并更改它 (JAVA)
Choose a random letter and change it (JAVA)
大家好,我是 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);
}
}
我需要编写程序来随机选择一个字母并将其更改为 X
谢谢
将 char c = phrase.charAt(num1, 'x');
更改为 char c = phrase.charAt(num1);
没有接受两个参数的 charAt 方法。
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
}
环顾四周并处理了几个问题后,我发现 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);
大家好,我是 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);
}
}
我需要编写程序来随机选择一个字母并将其更改为 X
谢谢
将 char c = phrase.charAt(num1, 'x');
更改为 char c = phrase.charAt(num1);
没有接受两个参数的 charAt 方法。
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
}
环顾四周并处理了几个问题后,我发现 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);