反转字符串并切换大写下部

时间:2011-07-01 12:55:40

标签: java

我需要编写一个以String作为输入的应用程序。在处理之后,它应该打印掉反向的字符串,并且所有字符从低位切换到大写,反之亦然。我想使用StringBuilder实现此目的。

样品运行:
输入:Hello Hello 输出:NAMUh OLLEh

5 个答案:

答案 0 :(得分:2)

以下是解决问题的简单直接方法:

  1. 使用例如Scanner类读取用户输入。和nextLine()方法。 (通过将Scanner作为参数来构造System.in。)

  2. 创建StringBuilder

  3. 使用例如input.toCharArray()

  4. 从输入字符串中获取字符数组
  5. 使用Arrays.asListCollections.reverse

    反转数组
    Collections.reverse(Arrays.asList(yourCharArray));
    
  6. 使用例如for-each循环遍历列表。

    for (Character c : yourCharArray) {
        ...
    }
    
  7. 对于每个字符,请检查c.isUpperCase是否附加c.toLowerCase()),否则附加c.toUpperCase()

  8. (另一种方法是给StringBuilder输入字符串作为参数,并使用reversecharAtsetCharAt方法就地操作字符串。)< / p>

答案 1 :(得分:0)

要反转字符串,请使用String reverse = new StringBuffer(YourString).reverse().toString();

答案 2 :(得分:0)

答案 3 :(得分:0)

这是一个“精英”3线解决方案:

    StringBuffer buffy = new StringBuffer("!GNIzA Ma").reverse();
    for (int i = 0; i < buffy.length(); i++)
        buffy.setCharAt(i, Character.isLetter(buffy.charAt(i)) ? (char) (buffy.charAt(i) ^ 32) : buffy.charAt(i));

    System.out.println(buffy); // "Am aZing!"

这是有效的,因为带有^(或32)的xor 0x20切换字节的第3位,从上到下更改,反之亦然。这种切换只适用于字母。

答案 4 :(得分:0)

      `function toggleCase(text){
         let toggledString='';
         for(let i=0;i<text.length;i++){
            if(text[i]==text[i].toUpperCase())
               toggledString+=text[i].toLowerCase();
            else if(text[i]==text[i].toLowerCase())
                    toggledString+=text[i].toUpperCase();
           }
         return toggledString;
       }`