Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 字符数组_Java_Char - Fatal编程技术网

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:是的,但是你仍然可以写一个
,而
循环也可以做同样的事情。但是不建议这样做,因为这会使区分真正的循环主体和循环记账变得更加困难。