猿问

Java将字母保存到数组

我尝试将字母 AZ 保存到我的数组中,但我不明白,为什么我只得到这个输出:Z。


public class Main {


    public static void main(String[] args) {


        char []tab = new char[25];


        for (int i = 0; i<25; i++) {

            for (int j=65; j<91; j++) {

                tab[i] = (char)j;

            }

        }


        for (int i=0; i<25; i++) {

            System.out.println(tab[i]);

        }


    }

}


ABOUTYOU
浏览 502回答 3
3回答

明月笑刀无情

你不需要嵌套循环,试试这个:char[] tab = new char[26];for (int i = 0, j = 65; j < 91; j++, i++) {&nbsp; tab[i] = (char) j;}for (int i = 0; i < 26; i++) {&nbsp; System.out.println(tab[i]);}此外,数组大小应该是 26 而不是 25。

ITMISS

你的算法是错误的。检查这个更简单的解决方案:public static void main(String[] args){&nbsp; &nbsp;char []tab = new char[25];&nbsp; &nbsp;for (int i = 0; i<25; i++) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; tab[i] = (char)(i+65);&nbsp; &nbsp; }&nbsp; &nbsp; for (int i=0; i<25; i++) {&nbsp; &nbsp; &nbsp; &nbsp; System.out.println(tab[i]);&nbsp; &nbsp; }}您的代码将所有字母从 A 到 Z 放在选项卡数组的每个槽中,在执行“j”循环时,这就是为什么你只有 Zs。

哔哔one

让我们看看你的代码是如何工作的:for (int i = 0; i<25; i++) {&nbsp; &nbsp; &nbsp; &nbsp;//1&nbsp; &nbsp; for (int j=65; j<91; j++) {&nbsp; &nbsp; //2&nbsp; &nbsp; &nbsp; &nbsp; tab[i] = (char)j;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //3&nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //4}&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //51) 外循环组i=0,2) 内循环组j=653)(char)65代表'A'蚂蚁被放置在tab[0]2) 内循环组j=663)(char)66代表'B'并且也被放置在tab[0]在这里您应该注意到问题,即内部循环正在处理相同i的 ,因此在迭代 A...Z 时,它正在修改相同的数组位置,这意味着该位置将保存最后一个放置在那里的值,即'Z'. (顺便说一句i<25应该是i<26)可能的解决方案不要使用内部循环,您可以通过添加Unicode 表中的代码点i来计算应该放在索引处的值65'A'for (int i=0; i<26; i++)&nbsp; &nbsp; tab[i] = (char)(65+i);顺便说一句,您可以通过避免使用幻数来进一步提高此代码的可读性(更多信息:什么是幻数,为什么它不好?)。所以这段代码可以重写为:int amountOfLetters = 'Z' - 'A' + 1;char[] tab = new char[amountOfLetters];int i = 0;for (char ch = 'A'; ch <= 'Z'; ch++) {&nbsp; &nbsp; tab[i++] = ch;}System.out.println(new String(tab));
随时随地看视频慕课网APP

相关分类

Java
我要回答