题解 | #字符串排序#

字符串排序

http://www.nowcoder.com/practice/5190a1db6f4f4ddb92fd9c365c944584

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();
            
            //将英文字母收集起来
            List<Character> letters = new ArrayList<>(); 
            for(char ch : str.toCharArray()){    //toCharArray() 方法将字符串转换为字符数组。
                if(Character.isLetter(ch)){
                    letters.add(ch);
                }
            }
            
            //将英文字母先排序,java8的拉姆达表达式
            letters.sort(Comparator.comparingInt(Character::toLowerCase));
            
            //若是非英文字母则直接添加
            StringBuilder result = new StringBuilder();
            for (int i = 0, j = 0; i < str.length(); i++) {
                if (Character.isLetter(str.charAt(i))) {        //Character.isLetter() 方法用于判断指定字符是否为字母。如果字符为字母,则返回 true;否则返回 false。
                    result.append(letters.get(j++));
                }
                else {
                    result.append(str.charAt(i));
                }
            }
            
            System.out.println(result);
        }
    }
}
全部评论

相关推荐

重生我想学测开:嵌入式的问题,我准备入行京东外卖了
点赞 评论 收藏
分享
湫湫湫不会java:1.在校经历全删了2.。这些荣誉其实也没啥用只能说,要的是好的开发者不是好好学生3.项目五六点就行了,一个亮点一俩行,xxx技术解决,xxx问题带来xxx提升。第一页学历不行,然后啥有价值的信息也没有,到第二页看到项目了,第一个项目九点,第二个项目像凑数的俩点。总体给人又臭又长,一起加油吧兄弟
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务