我想创建一个系统,当写下一个字母(例如:一个)时,它会将其转换为符号(例如:ԅ )。
我该怎么做?我知道这看起来很简单,但我非常非常非常进入编程,我只能做一个简单的日历或计算器。
我试图独自完成,但无处可去。我输入一个完整的单词,但它只打印第一个字母而不是单词,其中包含4+。例如,我输入“ aura ”,但只打印“ԅ”
非常感谢你们所有人!我最终做到了!!!!
答案 0 :(得分:3)
使用string = string.replace("a", "ԅ");
其中string是给定的单词(在您的情况下, aura )。
答案 1 :(得分:2)
我使用for循环读取一次提供一个字母的字符串然后创建一个新字符串"翻译"每封信。
这里有一些快速代码:
Scanner i = new Scanner(System.in);
System.out.print("Enter string:");
String start = i.next();
int len = start.length;
String end = "";
for (int a = 0, a<len, a++) {
if (start.Charat(a) == "a") {
end = end.append(ԅ)
} etc...
}
我只是把它放在了我的头顶,如果你给我更多的替换,我会尝试制作一个有效的版本:)
答案 2 :(得分:2)
您好@EpicJavaNoob并欢迎使用StackOverflow。
您可以在字符串上使用Map
和replace()
函数来解决您的问题。
您必须在程序中创建此类。
public class MyReplacer {
private static final Map<Character, Character> map = new HashMap<Character, Character>();
static { // the static block is used to instantiate the Map once for all
map.put('a' , '\u2026');
map.put('b', '+');
}
public static String encode(String stringToEncode) {
// for each entry in the hashmap, we replace the character by his corresponding key
for (Map.Entry<Character, Character> entry : map.entrySet()) {
stringToEncode = stringToEncode.replace(entry.getKey(), entry.getValue());
}
return stringToEncode;
}
}
然后在您的代码中,您可以这样使用上一课:
public static void main(String[] args) {
String str = "aura";
String encodedStr = MyReplacer.encode(str);
}
Map用于将键与值相关联。
我同意这不是你能找到的简单解决方案,但这就是你如何学习编码,查看其他人编写的代码并尝试理解它是如何工作的,以及为什么它以这种方式编写。< / p>
答案 3 :(得分:2)
在这种情况下,您可以使用HashMap<Character, Character>
!
如果你不知道那是什么,它基本上就是一本“字典”。你可以在你的情况下像这样HashMap
:
a -> ԅ
b -> !
c -> @
d -> #
注意:上面不是真正的代码,只是一个直观的表示!而且我不知道你的符号是什么意思以及如何输入它们,所以我使用了普通符号
请参阅?这真的是一本字典。当你寻找“a”时,你会得到“ԅ”,当你寻找“b”时,你会得到“!”等等。你现在得到它吗?
好的,现在让我们看看代码
HashMap<Character, Character> characterMap = new HashMap<> (); //Create a new HashMap
characterMap.put ('a', 'ԅ'); // Put an entry in the "dictionary"
characterMap.put ('b', '!');
//and so on... I am lazy
现在假设您能够获取用户输入并将其存储在名为input
的字符串中。就像安东尼的代码一样,你这样做:
for (Map.Entry<Character, Character> entry : map.entrySet()) {
input = input.replace(entry.getKey(), entry.getValue());
}
这基本上是这样说的,
Go to find every entry in the dictionary.
For each entry,
Store it in the "entry" variable
Replace all the occurrences of entry's key by entry's value
答案 4 :(得分:0)
最好的方法是使用转换表对Translator类进行编码:
编辑:在与AnthonyRaymond的建议达成一致之后,我选择了Map替代品而不是char[]
(我的第一个想法)。
public class Translator
{
private Map<Character,Character> table=createTable();
public String translate(String input)
{...}
}
要构造表,您必须只设置显式映射(以便将表减少到最小大小):
private Map<Character,Character> createTable()
{
Map<Character,Character> table=new HashMap<Character,Character>();
// Set the explicit mappings:
table.put('a', 'ԅ');
table.put('b', ...);
return table;
}
翻译rutine必须首先索引表格,如果找不到该字符,请选择输入字符(为了不翻译空白,换行符和其他不可翻译的字符):
public String translate(String input)
{
StringBuilder stb=new StringBuilder(input.length());
for (int i=0;i<input.length();i++)
{
char inputChar=input.charAt(i);
Character outputChar=table.get(inputChar);
if (outputChar==null)
{
outputChar=inputChar;
}
stb.append(outputChar);
}
return stb.toString();
}