Java 如何使用*字符键入字符串?
我被设置为只使用*字符打印一串输入字母БöБ。我的Java老师希望看到以下输出: 创建一个公共类字母并使用矩阵只编码两个字母很容易。但我面临的问题是制作整个字母表,这是一项额外的任务Java 如何使用*字符键入字符串?,java,oop,char,ascii,ascii-art,Java,Oop,Char,Ascii,Ascii Art,我被设置为只使用*字符打印一串输入字母БöБ。我的Java老师希望看到以下输出: 创建一个公共类字母并使用矩阵只编码两个字母很容易。但我面临的问题是制作整个字母表,这是一项额外的任务 也许还有另一种方法可以将输入字符串转换为*的图片?这是我的解决方案,可以将数字0到9转换为字符*,如您的示例: class JavaApplication57 { public static void main(String[] args) { Scanner sc = new Scann
也许还有另一种方法可以将输入字符串转换为*的图片?这是我的解决方案,可以将数字0到9转换为字符*,如您的示例:
class JavaApplication57 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
ArrayList<Letter> ar = new ArrayList<>();
System.out.println("Please input string: ");
String s = sc.next();
for (char c : s.toCharArray()) {
ar.add(JavaApplication57.convertToLetter(c));
}
for (int i = 0; i < 5; i++) {
for (Letter l : ar) {
System.out.print(l.getLine(i) + " ");
}
System.out.println("");
}
}
static Letter convertToLetter(char ch) {
String a = "****",
b = "* *",
c = " *",
c2 = "*",
d = "* ",
e = "* * ",
f = " * ";
switch (ch) {
case '0':
return new Letter(a, b, b, b, a);
case '1':
return new Letter(c2, c2, c2, c2, c2);
case '2':
return new Letter(a, c, a, d, a);
case '3':
return new Letter(a, c, a, c, a);
case '4':
return new Letter(d, e, a, f, f);
case '5':
return new Letter(a, d, a, c, a);
case '6':
return new Letter(a, d, a, b, a);
case '7':
return new Letter(a, c, c, c, c);
case '8':
return new Letter(a, b, a, b, a);
case '9':
return new Letter(a, b, b, c, a);
}
return null;
}
}
class Letter {
private String line1, line2, line3, line4, line5;
public Letter(String line1, String line2, String line3, String line4, String line5) {
this.line1 = line1;
this.line2 = line2;
this.line3 = line3;
this.line4 = line4;
this.line5 = line5;
}
public String getLine(int i) {
switch (i) {
case 0:
return line1;
case 1:
return line2;
case 2:
return line3;
case 3:
return line4;
case 4:
return line5;
default:
throw new AssertionError();
}
}
}
希望对您有所帮助我会这样写:
import java.util.*;
import java.util.stream.*;
public class Alphabet {
enum Letters {
A(
" * ",
" * * ",
" * * ",
"* *",
"*******",
"* *",
"* *"
),
B(
"***** ",
"* *",
"* *",
"***** ",
"* *",
"* *",
"***** "
),
C(
" ***** ",
"* *",
"* ",
"* ",
"* ",
"* *",
" ***** "
),
None(
"*******",
"*******",
"*******",
"*******",
"*******",
"*******",
"*******"
);
List<String> bitmap;
Letters(String... bmp) {
bitmap = Arrays.asList(bmp);
}
List<String> strings() {
return bitmap;
}
}
private final String SPACE = " ";
private final String origin;
private final Map<Character, Letters> bitmaps =
Stream.of(Letters.values())
.filter(l -> !l.equals(Letters.None))
.collect(Collectors.toMap(
letters -> letters.toString().charAt(0),
letters -> letters
));
public Alphabet(String abc) {
this.origin = abc;
}
List<String> data() {
List<List<String>> word = origin.chars()
.mapToObj(c -> bitmaps.getOrDefault((char) c, Letters.None).strings())
.collect(Collectors.toList());
return IntStream.range(0, word.get(0).size())
.mapToObj(idx -> word.stream().map(strings -> strings.get(idx)).collect(Collectors.joining(SPACE)))
.collect(Collectors.toList());
}
void print() {
List<String> bitmap = data();
bitmap.forEach(System.out::println);
}
public static void main(String[] args) {
new Alphabet(" ABCBA ").print();
}
}
但是有一个想法。
您应该发明一些算法为每个角色创建位图。欢迎使用堆栈溢出!你的问题是,这不是家庭作业完成服务。你的导师给你布置了作业,你首先需要自己做一些努力。如果你甚至不能开始,请向你的老师寻求帮助。将问题隔离到特定的编程片段中,然后搜索答案。如果您需要一门课程或教程,堆栈溢出不是合适的地方。我们祝你学习顺利。请参阅:。欢迎使用堆栈溢出!请仔细阅读,环顾四周,仔细阅读,特别是作业通常不是随意的;您的讲师、教程或课程将涵盖必要的主题,使您能够做到这一点。复习你的课程材料、课堂笔记等,并试一试。如果你遇到了一个特定的问题,彻底地研究它,如果你仍然困在那里,就发布你的代码和问题的描述。人们会很乐意帮助的。你应该为每个字母创建一个类,每个类/字母都有自己的循环,检查一下,为什么你认为除了为所有字母表创建一个字母之外,你还需要做其他事情?这会很费时,也不会比写两封信更能说明问题,但仅此而已。谢谢你的关注和所花的时间,LĐình Bảo Tín,不幸的是,我只是Java的初学者。你能解释一下你的代码是如何工作的吗?不是在注释中,而是在其他地方。是的,我不认为你是一个初学者。简单地说,您可以这样想:-class Letter:定义一个字母,-函数convertToLetter,用于将字符转换为字母,与您的示例相同-主:我有一个数组列表来包含所有的字母,然后我通过行打印字母。感谢您的时间和关注,我会检查它
******* * ***** ***** ***** * *******
******* * * * * * * * * * * *******
******* * * * * * * * * * *******
******* * * ***** * ***** * * *******
******* ******* * * * * * ******* *******
******* * * * * * * * * * * *******
******* * * ***** ***** ***** * * *******