Java技术问询:未使用println,为何无法在同一行输出?
解决Java星号拼名同一行输出问题
嘿,刚学Java就遇到这种细节问题太正常啦,我来帮你捋清楚!
首先,你说输出分多行显示,大概率是因为你用了System.out.println()却没注意它的核心特性——每次调用println()都会自动在结尾添加换行符。如果你的代码是逐个输出字母的每一行星号,比如先输出字母A的第一行用println(),再输出A的第二行又用println(),那自然会让每个字母的行单独换行,没法把不同字母的同一行星号并排显示。
正确思路:按“整行”拼接输出
要让星号拼成的名字横向排列(每个字母并排),你得把整个名字的每一行先拼接完整,再一次性输出这一行。举个例子,假设你要拼名字LUCY,我们先定义每个字母的每一行星号:
// 字母L的5行星号 String l1 = "* "; String l2 = "* "; String l3 = "* "; String l4 = "* "; String l5 = "***** "; // 字母U的5行星号 String u1 = "***** "; String u2 = "* * "; String u3 = "* * "; String u4 = "* * "; String u5 = "***** "; // 字母C的5行星号 String c1 = "***** "; String c2 = "* "; String c3 = "* "; String c4 = "* "; String c5 = "***** "; // 字母Y的5行星号 String y1 = "* * "; String y2 = " * * "; String y3 = " * "; String y4 = " * "; String y5 = " * ";
然后把每一行对应的字母部分拼接起来,再用println()输出这一整行:
public class NameStars { public static void main(String[] args) { // 上面的字母行定义放在这里 System.out.println(l1 + u1 + c1 + y1); System.out.println(l2 + u2 + c2 + y2); System.out.println(l3 + u3 + c3 + y3); System.out.println(l4 + u4 + c4 + y4); System.out.println(l5 + u5 + c5 + y5); } }
这样运行后,输出就是横向排列的星号名字啦!
为什么之前的写法会出问题?
如果最开始你用一个System.out.print()把所有星号堆在一起,确实会冗长到难以阅读;而如果分开用println()输出每个字母的单行,就会导致每个字母自己占多行。现在这种按行拼接的方式,既保持了代码的可读性,又能让名字正确显示。
慢慢练,这种小细节多试两次就熟练啦 😊
内容的提问来源于stack exchange,提问作者imveryconfused
相关产品推荐
相关产品推荐

