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 に答える