我已经写了java函数反转用户输入,但它不工作,我不知道问题在哪里以及如何解决它。
import java.util.Scanner;
class Reverse{
public static void main(String args[]){
Scanner word = new Scanner(System.in);
System.out.print("type the word here to check if it is palindrome: ");
String n = word.nextLine();
char[] let = n.toCharArray();
System.out.print(revrse(i, let));
// for (int i=let.length-1; i>=0; --i){
// System.out.print(let[i]);
// }
}
public static int reverse(char[] let){
for (int i=let.length-1; i>=0; --i){
return let[i];
}
}
}
如何使此代码正常工作。
答案 0 :(得分:3)
首先你使用
System.out.print(revrse(i, let));
但是您定义了名为
的方法int reverse(char[] let)
所以在你发布的代码中没有调用reverse方法。 你的方法反向(char [])的第二件事是没有返回反转的String但只返回一个对应于原始String的最后一个字符的整数。
在您的反向方法()中尝试此代码:
String str = "This is a try";
char[] arr = str.toCharArray();
char[] temp = new char[arr.length];
for (int i = 0; i < arr.length; i++) {
temp[i] = arr[arr.length - 1 - i];
}
修改强>
你应该尝试:
class Reverse{
public static void main(String args[]){
Scanner word = new Scanner(System.in);
System.out.print("type the word here to check if it is palindrome: ");
String n = word.nextLine();
char[] let = n.toCharArray();
System.out.print(reverse(let));
// for (int i=let.length-1; i>=0; --i){
// System.out.print(let[i]);
// }
}
public static char[] reverse(char[] let){
char[] reversed = new char[let.length];
for (int i = 0; i < let.length; i++) {
reversed[i] = let[let.length - 1 - i];
}
return reversed;
}
}
答案 1 :(得分:2)
你的反向(char [] let)返回最后一个字母。您应该将您的字母附加到for循环中的String变量,并在循环之后将其返回。
此外,您的代码中存在以下错误:
System.out.print(revrse(i, let));
方法参数和方法名称不匹配。
可能最好的方法是将输入字符串传递给
public static Stringreverse(String input) {
String reversed = new String("");
// do reversing in for loop here
// ...
return reversed;
}
方法并处理其内部的反转。这样,你的函数处理给定的任务,你的main()函数保持干净。您可以在主函数中打印它的返回值。