有没有办法将用户输入存储在数组中并反转它? [复制]
Posted
技术标签:
【中文标题】有没有办法将用户输入存储在数组中并反转它? [复制]【英文标题】:is there a way to store user input in an array and get reverse of it? [duplicate] 【发布时间】:2014-09-07 02:47:55 【问题描述】:我已经编写了反转用户输入的 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];
如何使这段代码工作。
【问题讨论】:
"revrse" -> 看看你是怎么调用这个方法的,它是怎么定义的 1.你代码编译吗? 2.您可以使用 StringBuilder 轻松反转字符串。 另外,您的reverse
方法只是返回字符数组中最后一个字符的序号,它不会反转它。正如@Shail016 提到的,您可以使用new StringBuilder(n).reverse().toString()
。
对不起,我是初学者,我并不完全理解您的建议,您能否对您的建议进行更深入的解释
如果您只需要检查String
是否为Palindrome
,为什么要反转它。只需获取一个变量,将其初始化为say i = 0
,然后将第二个变量初始化为say j = let.length - 1
从0
开始循环到< let.length / 2
并比较let[i] with let[j]
【参考方案1】:
首先你使用
System.out.print(revrse(i, let));
但是你定义的方法叫做
int reverse(char[] let)
所以您发布的代码中不会调用 reverse 方法。 第二件事你的方法 reverse(char[]) 没有返回反转的字符串,而只是返回一个与原始字符串的最后一个字符相对应的整数。
在你的反向方法中试试这个代码():
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;
【讨论】:
【参考方案2】:你的 reverse(char[] let) 返回最后一个字母。您应该将您的字母附加到 for 循环中的 String 变量并在循环后返回它。
另外,您的代码中有以下错误:
System.out.print(revrse(i, let));
方法参数和方法名不匹配。
建议:
可能最好的方法是将输入字符串传递给a
public static Stringreverse(String input)
String reversed = new String("");
// do reversing in for loop here
// ...
return reversed;
方法和处理它里面的反转。这样,您的函数处理给定任务并且您的 main() 函数保持干净。你可以在主函数中打印 this 的返回值。
【讨论】:
以上是关于有没有办法将用户输入存储在数组中并反转它? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何使用python3将输入数据存储到文本文件中并打印数据输出?