Java 试图获得双倍的产出”;"ZA YB";

Java 试图获得双倍的产出”;"ZA YB";,java,for-loop,nested,Java,For Loop,Nested,好的,下一个问题。我需要输出:ZA-YB-XC-WD-VE-UF-TG-SH-RI-QJ。 我有: 公共静态void outputEight() { System.out.println(“”); 字符串zQ=“Q R S T U V W X Y Z”; 对于(int-alphz=zQ.length()-1;alphz>=0;alphz--) { 对于(char alph='A';alph这是解决您问题的众多解决方案之一: public static void outputEight() {

好的,下一个问题。我需要输出:ZA-YB-XC-WD-VE-UF-TG-SH-RI-QJ。 我有:

公共静态void outputEight()
{
System.out.println(“”);
字符串zQ=“Q R S T U V W X Y Z”;
对于(int-alphz=zQ.length()-1;alphz>=0;alphz--)
{

对于(char alph='A';alph这是解决您问题的众多解决方案之一:

public static void outputEight()
{
    String[] zQ = "Q R S T U V W X Y Z".split(" ");
    for (int alphz=zQ.length - 1 ; alphz >= 0 ; alphz--) {
      System.out.println(zQ[alphz] + (char)('A' + zQ.length-1-alphz));
    }
}

在这里,我使用split函数从'Q'到'Z'生成一个适当的字符数组。然后我以相反的顺序迭代其索引,将适当的字符从'A'连接到'J'。

下面是一个利用for(char alph…)循环的解决方案:


啊……这段代码是怎么回事?当他们要求您将Q输出到Z时,他们并没有想到这一点。变量zQ不是正确的想法。接下来要做的是了解字母在ASCII/Unicode中是连续的,即
B
紧跟
A
,Java将字符视为数字,因此您可以计算字母,例如,如果
i=3
然后你做
(char)('A'+i)
,结果是
'D'
。因此,从0到9迭代
i
,计算第一个字母为
'Z'-i
,第二个字母为
'A'+i
,并用这两个字母构建字符串。我认为安德烈亚斯的解决方案更好:)但是是的,谢谢你,这很有帮助immensely@DPabst是当有人回答您的问题时要做的事情。若要将答案标记为已接受,请单击答案旁边的复选标记,将其从灰色变为已填写。无需对您的问题或答案添加评论即可说“谢谢”。
public static void outputEight()
{
    String[] zQ = "Q R S T U V W X Y Z".split(" ");
    for (int alphz=zQ.length - 1 ; alphz >= 0 ; alphz--) {
      System.out.println(zQ[alphz] + (char)('A' + zQ.length-1-alphz));
    }
}
    for(char alph = 'A'; alph <= 'J'; alph++)
    {
        System.out.print((char)('Z'-alph+'A'));
        System.out.print(alph);
        if(alph == 'J') {
            System.out.println();
        } else {
            System.out.print(" ");
        }
    }
    System.out.println(IntStream.rangeClosed('A', 'J')
            .mapToObj(c -> new char[]{(char)('Z'-c+'A'),(char)c})
            .map(String::new)
            .collect(Collectors.joining(" ")));