我想从Textfield中读取一个String语句,并将String中的每个字母与我的列表进行比较

时间:2011-03-14 07:19:16

标签: java

我想从Textfield中读取一个String语句,并将String中的每个字母与我已经制作的字符串列表进行比较,如下所示:

A = 123f;
B = 221d;
H = 2333gg;

等等..

我的问题是:如何阅读我的消息,因为单个字符串可以说这是消息:"Hello World"

我希望能够将每个单词与我的字符串进行比较: 所以“Hello World”会比较第一个字母“H”,它会使它成为我定义为“H”的东西,所以它会以JLabel或其他任何形式输出2333gg

提前谢谢!

3 个答案:

答案 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++)
{
    ...
}