gpt4 book ai didi

java - Ascii 艺术字符串到字符的转换

转载 作者:行者123 更新时间:2023-12-01 17:50:06 28 4
gpt4 key购买 nike

我有一个 Ascii 艺术设计输入,我希望根据输入的 Ascii 艺术打印真实的字符。我创建了以下程序,但我不知道它有什么问题。

     import java.util.*;

class Ascii {
static final char START_CHAR = 'a';
static final char END_CHAR = 'z';
static final char DELIMITER_CHAR = END_CHAR + 1;

public static String printchar(char c){
int l =5,w=4,start=0,end=0;
String v="";
c=Character.toLowerCase(c);

String[] rowArray = new String[5];
rowArray[0]=" # ## ## ## ### ### ## # # ### ## # # # # # ### # ## # ## ## ### # # # # # # # # # # ### ###";
rowArray[1]="# # # # # # # # # # # # # # # # # ### # # # # # # # # # # # # # # # # # # # # # # # #";
rowArray[2]="### ## # # # ## ## # # ### # # ## # ### # # # # ## # # ## # # # # # # ### # # # ##";
rowArray[3]="# # # # # # # # # # # # # # # # # # # # # # # # # # ## # # # # # # # # ### # # # # ";
rowArray[4]="# # ## ## ## ### # ## # # ### # # # ### # # # # # # # # # ## # ### # # # # # # ### # ";

if(START_CHAR <= c && c <= END_CHAR)
{
start = (c-START_CHAR)* w;
end = start+w;
}

else
{
start=103;end=107;

}

for (int i = 0; i < l; i++) {
v = v+"\n"+rowArray[i].substring(start,end);
}
return v;

}
}

public class Solution {
public static void main(String args[]) {

String b = Ascii.printchar('A');
System.out.println(b);
char c = A.scanChar(b);
System.out.println("Corresponding Letter ="+c);
}
}

class A{

static char scanChar(String s)
{
Ascii.
Map<String,Character> mapping= new HashMap<>(26);
mapping.put(" # \n# #\n###\n# #\n# #\n", 'A');
mapping.put("## \n# #\n## \n# #\n##\n", 'B');
mapping.put(" ##\n# \n# \n# \n ##\n", 'C');
mapping.put("## \n# #\n# #\n# #\n## \n", 'D');
mapping.put("###\n# \n## \n# \n###\n", 'E');
mapping.put(" ###\n# \n## \n# \n# \n", 'F');
mapping.put("###\n #\n ##\n \n # \n", '?');
System.out.println(mapping.get('A'));
return mapping.get(s);


}

}

有人可以指出目前我在将字符串与 map 值进行比较时得到空值的错误吗?

最佳答案

docs对于 get() 方法指定

Returns the value to which the specified key is mapped, or null if this map contains no mapping for the key.

您将 ASCII 艺术作为而不是。因此,当您尝试获取“A”的键(没有)时,它会返回 null。

更改:

  mapping.put(" # \n# #\n###\n# #\n# #\n", 'A');
mapping.put("## \n# #\n## \n# #\n##\n", 'B');
mapping.put(" ##\n# \n# \n# \n ##\n", 'C');
mapping.put("## \n# #\n# #\n# #\n## \n", 'D');
mapping.put("###\n# \n## \n# \n###\n", 'E');
mapping.put(" ###\n# \n## \n# \n# \n", 'F');
mapping.put("###\n #\n ##\n \n # \n", '?');

致:

  mapping.put('A', " # \n# #\n###\n# #\n# #\n");
mapping.put('B' , "## \n# #\n## \n# #\n##\n");
mapping.put('C', " ##\n# \n# \n# \n ##\n");
mapping.put('D', "## \n# #\n# #\n# #\n## \n");
mapping.put('E', "###\n# \n## \n# \n###\n");
mapping.put('F', " ###\n# \n## \n# \n# \n");
mapping.put('?', "###\n #\n ##\n \n # \n");

关于java - Ascii 艺术字符串到字符的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51236554/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com