Java StringBuilder检查字母值

Java StringBuilder检查字母值,java,stringbuilder,Java,Stringbuilder,我正在尝试将StringBuilder中的所有字母都更改为连字符,并保留所有非字母值(如空格撇号等),在不列出和比较所有字母的情况下,如何做到这一点,这是可能的吗 private StringBuilder puzzle = new StringBuilder("I'm the cat") for (int i = 0; i < guess.length(); i++) { if (puzzle.charAt(i) == ' '){ puzzle.setCharAt

我正在尝试将StringBuilder中的所有字母都更改为连字符,并保留所有非字母值(如空格撇号等),在不列出和比较所有字母的情况下,如何做到这一点,这是可能的吗

private StringBuilder puzzle = new StringBuilder("I'm the cat")
for (int i = 0; i < guess.length(); i++) {
    if (puzzle.charAt(i) == ' '){ 
       puzzle.setCharAt(i, ' ');     }
    else 
       puzzle.setCharAt(i, '-');
     } 
private StringBuilder puzzle=新StringBuilder(“我是猫”)
for(int i=0;i

因此,输出类似于(-)

这应该可以做到:

import java.util.regex.Pattern;

.
.
.

Pattern p = Pattern.compile("\\w");

String s = p.matcher("I'm the cat").replaceAll("-");

System.out.println(s);  // prints "-'- --- ---"
您也可以使用
.replaceAll(“\\w”和“-”)
,但是如果您要在一个方法中进行大量替换,那么事先编译
模式
在技术上更为有效(尽管在这种情况下不太可能)。

请尝试replaceAll()


可能使用?Character类有一个Isleter()或一些类似的方法,可能很有用。
System.out.println("I'm the cat".replaceAll("\\w", "-")); //prints: -'- --- ---