是否有可能将用户输入到多个txtfields [通过getText()]然后连接它?

时间:2014-08-16 13:31:38

标签: java concatenation string-concatenation

是否有可能将用户输入到多个txtfields [通过getText()]然后连接它? 说,我有5个txtfields,我想得到他输入到每个txtfield的信,然后将它与正确的词进行比较(它就像一个4pics1word游戏)。

        String s1 = field1.getText();
        String s2 = field2.getText();
        String s3 = field3.getText();
        String s4 = field4.getText();
        String s5 = field5.getText();

        if (s1 + s2 + s3 + s4 + s5 == "hello") {
            lvl++;
        }

这甚至可能吗? (哈哈,对不起,我是初学者) 如果没有,你会建议我做什么呢?谢谢

3 个答案:

答案 0 :(得分:1)

是的,这是可能的。你这样做几乎是正确的:

String result = s1 + s2 + s3 + s4 + s5;
if ("hello".equals(result) {
  lvl++;
}

如果你冒险进入更多领域,你应该研究StringBuilder

String result = new StringBuilder().append(s1).append(s2).append(s3).append(s4).append(s5).toString();
if ("hello".equals(result) {
  lvl++;
}

使用Java 8:

String result = Arrays.asList(field1, field2, field3, field4, field5)
                      .stream()
                      .map(field -> field.getText()) // or ClassOfField::getText
                      .collect(Collectors.joining());

答案 1 :(得分:0)

是的,这完全有可能。您的代码唯一的问题是您使用==来比较字符串,这几乎不会起作用(用于比较它们的内容)。使用.equals

if ("hello".equals(s1 + s2 + s3 + s4 + s5) {

==与字符串对象一起使用可以比较对象引用。您可以拥有多个具有相同字符序列的字符串对象,这就是equals的用途。在Java中,您基本上不会将==与字符串一起使用。

答案 2 :(得分:0)

是的,这是完全可能的。但请注意,字符串比较应使用equals,而不是==

if ((s1 + s2 + s3 + s4 + s5).equals("hello")) {
  lvl++;
}