我必须做一个程序,用户输入3个字母,然后程序打印出星号。 EX为1个字母: http://imgur.com/oPPO0Bs很显然,我可以用字母表中的每个字符的形状组成一个数组,但我想知道是否有更简单的方法来做这件事。是否有一些方法可以获取char和一个符号,并在该符号中打印出char的形状。需要采取一个字符,并打印出星号的形状java
回答
有没有简单的方法来做到这一点。 A char
没有形状。 A char
只是一个介于0
和65535
之间的数字,在您打印时恰好显示为单个字符。
你将不得不为每个字母的字母设计自己的模式,使用数组将是最简单的方法。
是的,我想我必须这样做,我知道我可以这样做,它只是乏味。 –
@AnatoliySokolov我同意这很乏味。我会试着用5个英文字母来证明你能做到,然后告诉你的教授你感到无聊。 –
@PaulBoddington总的矫枉过正。用户只能输入** 3 **字母,那为什么要用5?你想加分吗,让我们其他人看起来不好? OP已经设计了'D',所以设计一个'A',并且显示它可以打印'DAD',或者'ADD',这就是你停在那里的原因。大声笑*(哎呀,不能打印,但)* – Andreas
下面是使用好老AWT呈现在Comic Sans字体的文字很好地解决,踢和笑声:
import static java.awt.image.BufferedImage.*;
import java.awt.*;
import java.awt.image.*;
import java.io.*;
public class ASCIIRenderer {
public static void main(String[] args) throws IOException {
try (BufferedReader reader = new BufferedReader(
new InputStreamReader(System.in))) {
String text = null;
while ((text = reader.readLine()) != null) {
// Dummy image to calculate bitmap width/height of your text
BufferedImage img = new BufferedImage(1, 1, TYPE_INT_ARGB);
Graphics2D g2d = img.createGraphics();
Font font = new Font("Comic Sans MS", Font.PLAIN, 24);
g2d.setFont(font);
FontMetrics fm = g2d.getFontMetrics();
int width = fm.stringWidth(text);
int height = fm.getHeight();
g2d.dispose();
// Real image
img = new BufferedImage(width, height, TYPE_INT_ARGB);
g2d = img.createGraphics();
g2d.setFont(font);
fm = g2d.getFontMetrics();
g2d.drawString(text, 0, fm.getAscent());
g2d.dispose();
for (int y = 0; y < img.getHeight(); y++) {
for (int x = 0; x < img.getWidth(); x++) {
System.out.print(0 == img.getRGB(x, y) ? " " : "**");
}
System.out.println();
}
}
}
}
}
(credits to most of the above code go to MadProgrammer)
运行它,输入类似ABC
并获得这样的:
** ************ ************
****** **************** ****************
****** **** ****** ****** ****
******** **** ****** ****** ****
******** **** **** ****
****** **** **** **** ******
******** **** **** **** ******
****** **** **** ****** ****
******** ** **** ****** ****
****** **** **************** ****
****************** **************** ****
******************** **** ******** ****
********** **** **** ****** ****
****** **** **** **** **** ****
****** **** **** **** **** ******
****** ****** **** **** ****** ********
****** **** **** ********** ****************
**** **** **************** **********
************
这是相当辉煌。加上一个努力和速度。 –
- 1. 需要打印一个符号
- 2. 打印星号(*)在字符串中的字符在java
- 3. Traceroute打印星号符号
- 4. Java数组打印星号
- 5. 打印星号-java/text files
- 6. 打印星号
- 7. 读取输入字符并以图形格式打印出现
- 8. 存储输入,并打印出一个字符串取决于输入 - Java
- 9. C - wchar_t打印不需要的字符
- 10. Java:数组星号打印的值
- 11. Java矩形的星形与作为字符串单独打印循环
- 12. 宏要打印一个字符串
- 13. 如何获取Java中的一部分字符串并打印出来?
- 14. 以错误顺序打印三角形字符以及不需要的字符
- 15. 开始Java:使用数组打印出一个5尖的星
- 16. 如何打印出一个字符串
- 17. C++ - 在输出文件中打印不需要的字符
- 18. 取一个字符并从char打印出'a'并反转它应该递归
- 19. 打印第一列并打印%符号后的所有内容
- 20. 为什么打印一个整数的__repr__需要括号?
- 21. Java - 建议需要采取一个小项目的方法
- 22. 如何使用.format()我打印一个字符串,并打印文字大括号在我替换字符串
- 23. 如何采取一个字符串,并返回一个字
- 24. 钻石形状的打印数字PHP
- 25. 打印的形状与数字
- 26. 需要在输出行中打印字符
- 27. 我需要采取一串名称将每个名称添加到列表,然后用索引号打印
- 28. 从键盘输入并打印出星号
- 29. 如何挑选一个字符串并将其打印出来?
- 30. 存储一个字符串并打印出来
嗯......是的,没有。您可以包含FreeType(或者,在Windows上将该字符绘制到位图中),但这听起来超出了您要求做的事情。您自己可以在网上搜索预先制作的列表,而不是自己创建位图数组。当然,没有办法可以准确地完成*你的任务是写什么的! – usr2564301