dabocaiqq
2020-05-19 15:33
采纳率: 66.6%
浏览 154

高分悬赏:Java语言编写一个控制台程序,将用户输入的单词,按照反向排序输出:

高分悬赏:Java语言编写一个控制台程序,将用户输入的单词,按照反向排序输出:
输入 hello everyone welcome to java
输出 java to welcome everyone hello

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • 毕小宝 2020-05-21 19:46
    已采纳

    Java 的字符串没有 reverse 方法,需要自己实现,但是 StringBufer 类提供了这个方法,可以直接使用:
    图片说明

    打赏 评论
  • 神农马 2020-05-19 15:50
     String str="hello everyone welcome to java";
        StringBuilder result = new StringBuilder();
        List<String> strList = Arrays.asList(str.split(" "));
        for (int i = strList.size()-1; i >= 0 ; i--) {
          result.append(strList.get(i));
          result.append(" ");
        }
        System.out.println(result.toString());
    
    打赏 评论
  • 先用 空格分割成数组 在使用数据的倒叙方法 然后再输出就好了

    打赏 评论
  • qybao 2020-05-19 17:57

    split分割一下,数组倒向输出即可,这样也太简单了
    所以这里自动加了个难度,空白符号也一起反向输出
    (通过调用reversWord方法传递keepSpace来控制是否需要保持空白符也反向输出)

    public class Sample {
        public static void main(String[] args) {
            try {
                Scanner sc = new Scanner(System.in);
                String org = sc.nextLine(); //"   hello  everyone welcome  to  java  "
                //String org = "   hello  everyone welcome  to  java  ";
                System.out.println(reverseWord(org, false));
                System.out.println(reverseWord(org, true));
            } catch (Throwable e) {
                e.printStackTrace();
            }
        }
        public static String reverseWord(String org, boolean keepSpace) {
            StringBuilder buf = new StringBuilder();
            String[] arr = org.split("\\s+");
            String[] sps = org.split("[^\\s]+");
            if (!keepSpace) {
                for (int i=arr.length-1; i>0; i--) {
                    buf.append(arr[i]).append(" ");
                }
                buf.append(arr[0]);
            } else {
                int j = sps.length - 1;
                if (org.matches("^.*?\\s+$")) {
                    buf.append(sps[j--]);
                }
                for (int i=arr.length-1; i>0; i--, j--) {
                    buf.append(arr[i]).append(sps[j]);
                }
                buf.append(arr[0]);
            }
            return buf.toString();
        }
    }
    
    打赏 评论

相关推荐 更多相似问题