Scanner input = new Scanner(System.in);
String userInput = input.nextLine();
String letterArray[] = new String[userInput.length()];
for(int i = 0; i < userInput.length(); i++ ){
letterArray[i] = userInput.substring(i, i+1);
}
for(int j = userInput.length()-1; j>=0; j--){
System.out.print(letterArray[j]);
}
我已经存储了用户输入,我想要反转他们输入的内容并将反转的表单存储为字符串。
我设法将String显示为存储在数组中的每个字母增量的叠加,如何将反转形式存储为字符串?
答案 0 :(得分:0)
如果您只想反向打印,可以这样做:
Scanner input = new Scanner(System.in);
String userInput = input.nextLine();
for(int i=1;i<=userInput.length();i++){
System.out.print(userInput.charAt(userInput.length()-i));
}
除此之外,如果你想把字符串转换为数组,你可以使用更简单的方法,如:String [] letterArray = userInput .split(&#34;&#34;);
如果要将其存储为数组或新字符串,可以执行以下操作:
扫描仪输入=新扫描仪(System.in);
String userInput = input.nextLine();
Char[] characters=new Char[userInput.length];
for(int i=1;i<=userInput.length();i++){
characters[i-1]=userInput.charAt(userInput.length()-i);
System.out.print(characters[i-1]);
}
String newString=new String(characters);
有很多种可能性。
答案 1 :(得分:0)
您可以通过不同方式获得反转java.lang.String
。
最安全的方法是使用java.lang.StringBuilder.reverse()
方法:
System.out.println(new java.lang.StringBuilder("abc").reverse().toString());
如果您想学习如何迭代字符并按照您想要的方式添加它们,可以使用StringBuilder
,使用java.lang.StringBuilder.append(char c)
方法逐个附加字符。
警告:前方不常见。
有一种特殊情况,你不能改变角色的顺序,甚至不能改变它们。
它指的是UTF-16的代理对。这些是Java java.lang.String
中的单个字符对(比如字符c1和c2),但实际上是指单个unicode字符。
如果你构建一个字符串来反转该对中的字符(c2然后是c1),那么你将构建一个不正确的字符串。
更新:我刚刚看到StringBuider.reverse()方法的文档明确地描述了代理对。请在此处阅读:http://docs.oracle.com/javase/7/docs/api/java/lang/StringBuilder.html#reverse()