0

我创建了这个应用程序,用于编码和解码之类的。我创建了用户输入文本的第一个文本区域。程序获取文本。到现在为止还挺好。
现在我需要用另一组字母或数字或两者替换每个字母。我尝试使用:

@FXML
String text;
@FXML
TextArea userText;
@FXML
Label codedTextLabel;
@FXML    
private void getTextAction(ActionEvent textEvent) {
String codedText;
    text = userText.getText();
    //The first if
    if (text.contains("a") {
     codedText = codedTextLabel.getText() + "50"; //50 means a, 60 means b and so on
     codedTextLabel.setText(codedText);
    } else {
     System.out.println("Searching for more text...");
    }
    //The second if
    if (text.contains("b") {
     codedText = codedTextLabel.getText() + "50"; //50 means a, 60 means b and so on
     codedTextLabel.setText(codedText);
    } else {
     System.out.println("Searching for more text...");

...依此类推...
我为同一个文本区域创建了多个 if,这样每个 if 都会被执行,即使另一个 if 被执行。但它会产生错误并且不起作用。知道如何创建这样的应用程序来做这件事吗?

4

1 回答 1

1

我会这样做:

private static final Map<Character, String> mapping = new HashMap <>();
static {
    map.put('a', "50");
    map.put('b', "60");
    //etc.
}

然后在你的方法中:

String text = userText.getText();
StringBuilder sb = new StringBuilder();
for (char c : text.toCharArray()) {
    sb.append(mapping.get(c)); //should add null check here
}

String encodedText = sb.toString();
于 2013-06-01T09:13:31.307 回答