为了账号安全,请及时绑定邮箱和手机立即绑定

Java将字母保存到数组

Java将字母保存到数组

ABOUTYOU 2022-03-10 15:55:33
我尝试将字母 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]);        }    }}
查看完整描述

3 回答

?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

你不需要嵌套循环,试试这个:


char[] tab = new char[26];

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

  tab[i] = (char) j;

}


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

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

}

此外,数组大小应该是 26 而不是 25。


查看完整回答
反对 回复 2022-03-10
?
ITMISS

TA贡献1871条经验 获得超8个赞

你的算法是错误的。


检查这个更简单的解决方案:


public static void main(String[] args)

{

   char []tab = new char[25];


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

            tab[i] = (char)(i+65);

    }


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

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

    }

}

您的代码将所有字母从 A 到 Z 放在选项卡数组的每个槽中,在执行“j”循环时,这就是为什么你只有 Zs。


查看完整回答
反对 回复 2022-03-10
?
哔哔one

TA贡献1854条经验 获得超8个赞

让我们看看你的代码是如何工作的:


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

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

        tab[i] = (char)j;          //3

    }                              //4

}                                  //5

1) 外循环组i=0,

2) 内循环组j=65

3)(char)65代表'A'蚂蚁被放置在tab[0]

2) 内循环组j=66

3)(char)66代表'B'并且也被放置在tab[0]


在这里您应该注意到问题,即内部循环正在处理相同i的 ,因此在迭代 A...Z 时,它正在修改相同的数组位置,这意味着该位置将保存最后一个放置在那里的值,即'Z'. (顺便说一句i<25应该是i<26)


可能的解决方案

不要使用内部循环,您可以通过添加Unicode 表中的代码点i来计算应该放在索引处的值65'A'


for (int i=0; i<26; i++)

    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++) {

    tab[i++] = ch;

}


System.out.println(new String(tab));


查看完整回答
反对 回复 2022-03-10
  • 3 回答
  • 0 关注
  • 501 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号