【发布时间】:2018-11-05 16:13:23
【问题描述】:
该程序非常简单:它接受一个字符串并将元音替换为“_”,然后打印反转的字符串。我只是在寻找使我的代码更专业的方法,并希望得到一些提示。
import java.util.Scanner;
public class reverse_string {
public static void main (String[] args){
Scanner scan = new Scanner(System.in);
String input, reverseInput;
String legolas = new String();
System.out.println("Enter any input");
input = scan.nextLine();
StringBuilder newString = new StringBuilder(input);
System.out.println("The data you entered is: "+input);
for (int i =0; i <input.length();i++){
if (testIfVowel(input.charAt(i))){
newString.setCharAt(i,'_');
}
else{
newString.setCharAt(i, input.charAt(i));
}
}
for(int i = input.length()-1;i>=0;i--){
legolas = legolas +input.charAt(i);
}
reverseInput=reverseOrder(newString);
System.out.println("Your old data was: "+input+"\nYour new data is: "+newString +"\nYour old data in reverse is: "+legolas+"\nYour new data in reverse is: "+ reverseInput);
}
public static boolean testIfVowel(char x){
if(x =='a'||x=='A'||x=='e'||x=='E'||x=='i'||x=='I'||x=='o'||x=='O'||x=='u'||x=='U'){
return true;
}
else{
return false;
}
}
public static String reverseOrder(StringBuilder x){
String string= new String();
for(int i = x.length()-1;i>=0;i--){
string = string + x.charAt(i);
}
return string;
}
}
【问题讨论】:
-
您应该尝试将其发布到
Code Review。 -
如果这已经在工作并且您正在寻找有关如何改进它的建议,则应该在Code Review。
-
附带说明:使用有意义的变量名可以更容易地理解您的代码并对其进行推理。因此,字符串的名称(例如“legolas”)没有多大帮助。甚至像“x”和“c”这样的名称也可能很容易出错,尤其是当它们以不同的方法用于不同的事物时。
-
StringBuilder 有一个方法 reverse() 可以做你想做的事。
标签: java computer-science