题解 | #单词倒排#

单词倒排

http://www.nowcoder.com/practice/81544a4989df4109b33c2d65037c5836

判断是不是字母: Character.isLetter(ch[i])

import java.util.regex.*;
import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String test = sc.nextLine();
        
        char[] ch = test.toCharArray();
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < ch.length; i++) {
            if (Character.isLetter(ch[i])) {
                sb.append(ch[i]);
            }else{
                sb.append(" ");
            }
        }
        String[] arr = sb.toString().split(" ");
        for (int i = arr.length - 1; i >= 0; i--) {
            System.out.print(arr[i]+" ");
        }
    }
}

全部评论
分隔正则改成\\s+
6 回复 分享
发布于 2022-07-13 10:06
输出要改成 System.out.print(arr[i].trim()+" ");
3 回复 分享
发布于 2022-03-13 14:14
这个有有问题的 输入有多个间隔符时,倒排输出后不能保证只有一个空格
2 回复 分享
发布于 2022-03-08 14:52
if(arr2[i].length() > 0){ System.out.print(arr2[i].trim() + " "); }
点赞 回复 分享
发布于 2022-05-10 09:44
import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(sc.hasNext()){ String str=sc.nextLine(); char[] ch=str.toCharArray(); StringBuilder sb=new StringBuilder(); for(int i=0;i<ch.length>=0;i--) if(arr[i].length()>0) System.out.print(arr[i]+" "); } } } 这个可以适用于多个间隔符</ch.length>
点赞 回复 分享
发布于 2022-05-13 17:12
String[] arr = sb.toString().split(" "); StringBuffer sb2=new StringBuffer(); for (int i = arr.length - 1; i >= 0; i--) { sb2.append(arr[i]+" "); } System.out.print(sb2.toString().trim()); 把结尾的空格去掉了
点赞 回复 分享
发布于 2022-05-14 16:20
还是有问题,如果一个单词中间有多个空格,不能保证只有一个空格
点赞 回复 分享
发布于 06-23 21:13 上海

相关推荐

11-08 16:53
门头沟学院 C++
投票
滑模小马达:第三个如果是qfqc感觉还行,我签的qfkj搞电机的,违约金也很高,但公司感觉还可以,听说之前开过一个试用转正的应届生,仅供参考。
点赞 评论 收藏
分享
去B座二楼砸水泥地:不过也可以理解,这种应该没参加过秋招
点赞 评论 收藏
分享
27 5 评论
分享
牛客网
牛客企业服务