我已经设置了一个任务,将字符串中的每个字符串转换为*,除了该字符串中的任何空格(字符串是用户输入),一个警告是我必须使用for循环。我的代码如下......当前我遇到的问题是,当我尝试在if语句条件中使用char时,我得到一个"类型不匹配:无法从char转换为Boolean"错误。所有帮助表示赞赏...
public static void main(String[] args) {
//declare vars
Scanner input = new Scanner(System.in);
String name = "";
int length = 0;
//get name string
System.out.println("Enter your name");
name = input.nextLine();
//get length of name string
length = name.length();
//convert name string to array of characters
char[] nameChars = name.toCharArray();
//iterate over array of chars replacing each
// char with * and space with space
for (int index=0;index==length;index++){
//if the char is a space then do nothing
if (nameChars[index] = ' ') {
//else convert to *
} else {
nameChars[index] = '*';
}
}
//convert array back to string and output
String newName = new String(nameChars);
System.out.println(newName);
//close resources
input.close();
}
答案 0 :(得分:2)
不要编写所有代码,请尝试以下方法:
String newName = name.replaceAll("\\S", "*");
正则表达式\S
匹配"任何非空白字符"。
答案 1 :(得分:0)
您必须使用==
代替=
,如下所示:
if (yourChar == ' ') {
//your code ...
}
答案 2 :(得分:0)
使用==
代替=
进行if
条件检查,因为==
是关系运算符,=
是赋值运算符。
将index==length
更改为index < length
否则您的循环将永远无法运行!最初为index = 0
,而长度为正值,index!=length
则为<li>Article One</li>
<li>Article One</li>
<li>Article One</li>
</ol>
。所以循环永远不会运行。
答案 3 :(得分:0)
尝试以下方法
if (nameChars[index] == ' ') {
//else convert to *
} else {
nameChars[index] = '*';
}
答案 4 :(得分:0)
如果你想使用你的代码,那么你的条件是错误的,如果字符串char
你必须更改它,那么你将空间char
影响到当前nameChars[index] = ' '
至nameChars[index] == ' '
,请注意双等号[{1}}。
但是,我建议你使用这个简单的条件,因为当前==
是空格char
时你不会做任何事情,那么你不必检查是否它是一个太空炭:
char
答案 5 :(得分:0)
你为什么要发明一辆自行车? 最好使用Java的强大功能并完全替换String.class的所有方法:
String input = "123 wer 456 zxcv!";
String result = input.replaceAll("[^ ]", "*");
System.out.println(result);
答案 6 :(得分:0)
Java:如何将字符串中的每个字符转换为'*',空格
除外
String str = pw.replaceAll("[^\\s]", "*");
<强> TEST:强>
String str1 = "ASDAS sad!@# !@#^% ?".replaceAll("[^\\s]", "*");
System.out.println(str1);
<强>输出:强>
***** ****** ***** *
注意:对于char[]
,您可以使用String.valueOf(yourArray).replaceAll()。
答案 7 :(得分:-1)
String text = "It is a string";
System.out.println(text.replaceAll("[a-zA-Z]", "*"));
代码输出为:** ** * ******
。
请注意,当您想要修改String时,使用StringBuilder
会更容易。你需要记住字符串是不可变的。