Java 替换字符串。
我已经替换了一个字符串,这样所有的字母都显示为**。但是,当我要求用户输入字符时,我似乎无法将字母从*还原为字符串。我将在下面向您展示我在代码中所做的工作:Java 替换字符串。,java,string,replace,char,Java,String,Replace,Char,我已经替换了一个字符串,这样所有的字母都显示为**。但是,当我要求用户输入字符时,我似乎无法将字母从*还原为字符串。我将在下面向您展示我在代码中所做的工作: System.out.println(randomPirateWord.replaceAll("\\S", "*")); System.out.println("guess a letter"); char letterGuesed = input.findInLine(".").charAt(0); Sys
System.out.println(randomPirateWord.replaceAll("\\S", "*"));
System.out.println("guess a letter");
char letterGuesed = input.findInLine(".").charAt(0);
System.out.println(randomPirateWord.replaceAll("\\S"+letterGuesed,"*"));
方法
replaceAll
的工作方向相反。首先是一个正则表达式,然后是match的替换,因此您将猜测的字母替换为“*”,这可能与您想要实现的相反。我将使用一个字符串来保存您的隐藏字
,并在另一个函数中以*
的形式显示字符串的长度,然后将猜出的字母与hiddenWord
进行比较,并将*
更改回hiddenWord
。可能不使用替换所有的,但这似乎有效:
import java.util.Scanner;
class hola{
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
String randomPirateWord = "HelloWorld";
System.out.println("");
boolean notComplete = true;
char words[] = new char[randomPirateWord.length()];
char words2[] = new char[randomPirateWord.length()];
for(int i = 0; i < randomPirateWord.length(); i++){
words[i] = randomPirateWord.charAt(i);
words2[i] = '*';
}
while(notComplete){
System.out.print("Type a letter: ");
char letter = sc.next().charAt(0);
notComplete = false;
for(int i = 0; i < randomPirateWord.length(); i++){
if(words[i] == letter){
words2[i] = letter;
}
}
for(int i = 0; i < randomPirateWord.length(); i++){
System.out.print(words2[i]);
}
for(int k = 0; k < randomPirateWord.length(); k++){
if(words2[k] == '*'){
notComplete = true;
break;
}
}
System.out.println("");
}
}
}
import java.util.Scanner;
霍拉级{
公共静态void main(字符串参数[]){
扫描仪sc=新的扫描仪(System.in);
字符串randombiratieword=“HelloWorld”;
System.out.println(“”);
布尔值notComplete=true;
字符字[]=新字符[randomPirateWord.length()];
char words2[]=新字符[randombiratieWord.length()];
for(int i=0;i
这是目前为止效果最好的,唯一的问题是我需要能够在其中留出一个空间,并且我需要能够输入另一个字母,这样如果用户要输入h,它将显示为hll**lof当然,这是您自己制作的。。。只需从用户输入中读取字母
,正如我所说,唯一的例外是:“单词之间没有空格”