Java 字符数组
我试图打印字符串中的每一个第二个字母,但由于某些原因,我只正确打印第一个第二个字母,但之后它会以奇怪的顺序继续打印。这是我的密码:Java 字符数组,java,char,Java,Char,我试图打印字符串中的每一个第二个字母,但由于某些原因,我只正确打印第一个第二个字母,但之后它会以奇怪的顺序继续打印。这是我的密码: out.print("Please enter a word: "); String word = in.nextLine(); char[] c = word.toCharArray(); int x = 0; while (x < c.length) { if (c[x] % 2 != 0) {
out.print("Please enter a word: ");
String word = in.nextLine();
char[] c = word.toCharArray();
int x = 0;
while (x < c.length) {
if (c[x] % 2 != 0) {
out.print(word.charAt(x) + " ");
}
x++;
}
out.print(“请输入一个单词:”);
String word=in.nextLine();
char[]c=word.toCharArray();
int x=0;
而(x
为什么要尝试确定字符(c[x]
)是否为奇数?您应该测试索引本身
if (x % 2 != 0) {
为什么要尝试确定字符(
c[x]
)是否为奇数?您应该测试索引本身
if (x % 2 != 0) {
您应该更改此选项:
if (c[x] % 2 != 0) {
到
这将比较正在使用的索引,而不是比较字符
x
是字符的位置c[x]
是字符。您可以将c[x]
读取为“数组c
中位置x
处的值”。您应该更改以下内容:
if (c[x] % 2 != 0) {
到
这将比较正在使用的索引,而不是比较字符
x
是字符的位置c[x]
是字符。您可以将c[x]
读取为“数组c
中位置x
处的值”。您正在计算字符模2,而不是索引模2
顺便说一下:
String word …
for(int ix=1; ix<word.length(); ix+=2)
out.print(word.charAt(ix) + " ");
字符串字…
对于(int ix=1;ix,您计算的是字符模2,而不是索引模2
顺便说一下:
String word …
for(int ix=1; ix<word.length(); ix+=2)
out.print(word.charAt(ix) + " ");
字符串字…
对于(intix=1;ix问题区域:您正在检查值而不是索引
while (x < c.length) {
if (c[x] % 2 != 0) {
out.print(word.charAt(x) + " ");
}
while(x
将其转换为:检查索引而不是值
while (x < c.length) {
if (x % 2 != 0) {
out.print(word.charAt(x) + " ");
}
while(x
问题区域:您正在检查值而不是索引
while (x < c.length) {
if (c[x] % 2 != 0) {
out.print(word.charAt(x) + " ");
}
while(x
将其转换为:检查索引而不是值
while (x < c.length) {
if (x % 2 != 0) {
out.print(word.charAt(x) + " ");
}
while(x
while循环和模运算符可能不适合此操作。尝试循环。if(c[x]%2!=0)
应该是if(x%2!=0)
while循环和模运算符可能不适合此操作。尝试循环。if(c[x]%2!=0)
应该是if(x%2!=0)
So c[x]不是角色的位置吗?@KennethFaried:是角色本身。x
表示索引。所以c[x]这不是角色的位置吗?@KennethFaried:这是角色本身。x
表示索引。使用while循环还是for循环更好?我在编程时总是使用while循环。!!@KennethFaried。如果你知道迭代次数的限制,那么for循环通常是更好的选择。在这种情况下,for循环更合适更清晰。如果您有初始化指令或“重复更新”,请使用进行循环指令,甚至两者都有。在这里,int ix=1
和ix+=2
显然是为了循环维护而存在的。所以最好将其放入for
循环中。在这种情况下,for循环的迭代次数是while循环的一半。即使存在可测量的差异,也无所谓。@Rohit Jain:是的,但是你仍然可以写一个,而循环做完全相同的事情。但是不建议这样做,因为这会使区分真正的循环体和循环簿记变得更加困难。使用while循环还是for循环更好?我在编程时总是使用while循环..@KennethFaried。如果你知道迭代次数的限制,那么en for loop通常是更好的选择。在这种情况下,for loop更清晰。如果您有初始化指令或“更新以便重复”,请使用for
loops指令,甚至两者都有。在这里,int ix=1
和ix+=2
显然是为了循环维护而存在的。所以最好将其放入for
循环中。在这种情况下,for循环的迭代次数是while循环的一半。即使存在可测量的差异,也无所谓。@Rohit Jain:是的,但是你仍然可以写一个,而循环也可以做同样的事情。但是不建议这样做,因为这会使区分真正的循环主体和循环记账变得更加困难。