Java 试图获得双倍的产出”;"ZA YB";
好的,下一个问题。我需要输出:ZA-YB-XC-WD-VE-UF-TG-SH-RI-QJ。 我有: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() {
公共静态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(" ")));