我的Intro Java类存在问题,这个问题比我可以解决的问题多一点。
问题是要求用户输入字符串并输出相反的字符串
示例输入:“你今天过得怎么样?” 示例输出:“今天?做你是如何”
我很茫然,甚至不知道如何开始解决这个问题...任何提示都会非常感激。
我试过反转字符串,但它只是向后读。
package reverseinplace;
import java.util.*;
public class ReverseInPlace {
public static void main(String[] args) {
String original, reverse = "";
Scanner in = new Scanner(System.in);
System.out.println("Enter a string to reverse");
original = in.nextLine();
int length = original.length();
for ( int i = length - 1 ; i >= 0 ; i-- )
reverse = reverse + original.charAt(i);
System.out.println("Reverse of entered string is: "+reverse);
}
}
我应该使用某种数组吗? 提前谢谢!!!
答案 0 :(得分:2)
看一下String API。您可以使用split()
方法获取所有单词的数组。
然后,您可以以相反的顺序遍历数组,以相反的顺序重新创建一个新的String。
您可能希望使用StringBuilder
类来创建新字符串。
答案 1 :(得分:0)
String input = "How are you doing today?";
String[] inputAsArray = input.split(" ");
Collections.reverse(Arrays.asList(inputAsArray));
String output="";
for (String inputAsArray1 : inputAsArray) {
output+=inputAsArray1+" ";
}
如果字分隔符是空格或制表符。您必须导入集合和数组类。
答案 2 :(得分:0)
谢谢大家的意见。我搞砸了一下,得到了类似这样的东西作为我自己的解决方案的一部分,它就可以解决问题。
import java.util.*;
public class ReverseInPlace {
public static void main(String[] args) {
String original, reverse = "";
Scanner in = new Scanner(System.in);
System.out.println("Enter a string to reverse");
original = in.nextLine();
String[] words = original.split("\\s+");
System.out.print ("Reversed String in Place:" + " ");
for (int i = words.length - 1; i >= 0; i-- ){
System.out.print (words[i] + " ");
}
}
}