我正在我的课程中完成一项任务,这需要我创造一个财富游戏之轮。我目前正在研究getDisplayedPhrase
方法,我将解释。所以对于这个程序,我有一个随机短语,例如
"this is a question, thanks for helping!"
我希望这句话改为
"**** ** * ********, ****** *** *******!"
这就是短语在猜测之前的样子。你可以看到我只想改变字母,所以我创建了一个
private static final String alpha ="abcdefghijklmnopqrstuvwxyz"
避免任何标点符号。 这就是我到目前为止所做的:
public String getDisplayedPhrase() {
for (int i = 0; i<secretPhrase.length(); i++){
I don't know what to put here and what method to use???
I'm thinking of using charAt() or indexOf()
}
return displayedPhrase;
}
答案 0 :(得分:6)
return secretPhrase.replaceAll("[a-zA-Z]","*")
答案 1 :(得分:3)
您可以使用Character类来确定字符是否为字母。
String s = "this is a question, thanks for helping!";
StringBuilder rep="";
for(int i=0; i<s.length();i++){
if(Character.isAlphabetic(s.charAt(i))){
rep.append("*");
}
else {
rep.append(s.charAt(i));
}
}
System.out.println(rep);
您也可以使用String.replace()
并替换现有的String而不是额外的新String
for(int i=0; i<s.length();i++){
if(Character.isAlphabetic(s.charAt(i))){
s=s.replace(s.charAt(i), '*');
}
}
System.out.println(s);
输出:
**** ** * ********, ****** *** *******!
答案 2 :(得分:2)
使用String.replaceAll(String regex, String replacement)
。由于这是一项任务,我将让你对正则表达式部分进行研究。
答案 3 :(得分:2)
Pattern letterDigitPattern = Pattern.compile([a-zA-Z0-9]);
public String getDisplayedPhrase() {
Matcher m = letterDigitPattern.matcher(secretPhrase);
return m.replaceAll("*");
}