美好的一天!我这里有一个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);
}
}
当它输入一个字符串时,它会很好地删除一个字符串的空格,但是当向后显示该字符串时,该对话框将返回到菜单。请帮我解决代码中的错误。非常感谢你!
答案 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,它将反转不再有空格的字符串。享受!