如何将字符串增量存储为串联字符串?

时间:2015-04-23 10:04:58

标签: string loops for-loop concatenation

    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显示为存储在数组中的每个字母增量的叠加,如何将反转形式存储为字符串?

2 个答案:

答案 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()