向后显示字符串

时间:2012-07-07 15:50:35

标签: java string

美好的一天!我这里有一个Java程序,它应该向后显示一个字符串。例如,“ketchup”应显示“puhctek”。

import java.util.*;
import java.text.*;
import javax.swing.*;

public class StringManipulation {

    public static String ReverseStr(String S) {
           String newS = "";
           for (int i=0; i<S.length(); i++) {
              newS = S.charAt(i) + newS;
           }
           return newS;
        }
        public static void main(String[] args) {
        int choice;
        String menu, choiceStr = "", enterString="", noSpace;

        do {    
            menu = "MENU \n" +
                    "(1) Enter a string \n" +
                    "(2) Remove all spaces from a string \n" +
                    "(3) Display the string backward \n" +
                    "(4) Quit";
            choiceStr = JOptionPane.showInputDialog(menu);
            choice = Integer.parseInt(choiceStr);
            switch (choice) {
                case 1: enterString = JOptionPane.showInputDialog("Please enter the string:"); 
                        break;
                case 2: noSpace = enterString.replaceAll("\\s", "");
                        JOptionPane.showMessageDialog(null, noSpace); 
                        break;
                case 3: ReverseStr(enterString);
                        break;
                case 4: System.exit(0);
            }
        } while (choice != 4);
    }

}

当它输入一个字符串时,它会很好地删除一个字符串的空格,但是当向后显示该字符串时,该对话框将返回到菜单。请帮我解决代码中的错误。非常感谢你!

2 个答案:

答案 0 :(得分:3)

case 3: ReverseStr(enterString);
    break;

你在这里所做的就是调用ReverseStr方法然后突破 - 你没有对结果做任何事情,比如把它显示给用户。你可能想要这样的东西:

case 3: String rev = ReverseStr(enterString);
    JOptionPane.showMessageDialog(null, rev); 
    break;

作为旁注,以下是用于在Java中反转字符串的更简单,更快速的1个内容:

new StringBuilder(str).reverse().toString();

答案 1 :(得分:0)

在这里你老兄:

public static void main(String[] args) {
        int choice;
        String menu, choiceStr = "", enterString = "", noSpace;
        String stringWithNoSpaces = "";
        String reversedString = "";

        do {
            menu = "MENU \n"
                    + "(1) Enter a string \n"
                    + "(2) Remove all spaces from a string \n"
                    + "(3) Display the string backward \n"
                    + "(4) Quit";
            choiceStr = JOptionPane.showInputDialog(menu);
            choice = Integer.parseInt(choiceStr);
            switch (choice) {
                case 1:
                    enterString = JOptionPane.showInputDialog("Please enter the string:");
                    stringWithNoSpaces = enterString;
                    break;
                case 2:
                    stringWithNoSpaces = enterString.replaceAll("\\s", "");                    
                    JOptionPane.showMessageDialog(null, stringWithNoSpaces);
                    break;
                case 3:
                    reversedString = ReverseStr(stringWithNoSpaces);
                    JOptionPane.showMessageDialog(null, reversedString);
                    break;
                case 4:
                    System.exit(0);
            }
        } while (choice != 4);
    }

我做了一些更改:您的选项3返回到菜单,因为您的ReverseStr方法返回了一个反向字符串,但您从未捕获并显示它。你可能只是匆匆哈哈。我做了另一个更改,我可能错了,但是当你想要反转一个字符串时,它不会发送带有删除空格的字符串(建议你在选项3之前选择选项2)。我已经做到了,如果你在选项3之前选择选项2,它将反转不再有空格的字符串。享受!