我想从Textfield中读取一个String语句,并将String中的每个字母与我已经制作的字符串列表进行比较,如下所示:
A = 123f;
B = 221d;
H = 2333gg;
等等..
我的问题是:如何阅读我的消息,因为单个字符串可以说这是消息:"Hello World"
我希望能够将每个单词与我的字符串进行比较:
所以“Hello World”会比较第一个字母“H”,它会使它成为我定义为“H”的东西,所以它会以JLabel
或其他任何形式输出2333gg
。
提前谢谢!
答案 0 :(得分:1)
我认为你需要将你的字母(A = ...,B = ...,H = ...)存储到Map
中,然后你遍历输入字母(你可以得到)使用toCharArray()
)从输入字符串开始,如果Map
包含字母作为键,则输出相应的值。像这样:
Map<Character, String> lettersMap = new HashMap<Character, String>();
lettersMap.put(Character.valueOf('A'), "123f");
lettersMap.put(Character.valueOf('B'), "221d");
lettersMap.put(Character.valueOf('H'), "2333gg");
String input = "Hello world";
StringBuffer sb = new StringBuffer();
char[] inputLetters = input.toCharArray();
for (int i = 0; i < inputLetters.length; i++) {
Character letter = Character.valueOf(inputLetters[i]);
if (lettersMap.containsKey(letter))
sb.append(lettersMap.get(letter));
}
System.out.println(sb.toString());
答案 1 :(得分:0)
一旦你有String
(我们称之为myString
),你可以像这样迭代这些字母:
for(final char c:new StringIterator(myString))
{
//对每个角色做点什么(三)
} 击>
这有帮助吗?
编辑:我 SO 抱歉 - 我在一段代码中使用了非标准库并忘了。
怎么样:
for (int i = 0; i < myString.length(); i++)
{
char c = myString.charAt(i);
//Process char
}
答案 2 :(得分:0)
您可以使用String.toCharArray()
获取一组字符,您可以在其中单独访问每个字符。
String[] charArray = userInput.toCharArray();
for (int i = 0; i < charArray.length; i++)
{
...
}