文档章节

字符串排序

datacube
 datacube
发布于 2016/10/30 10:03
字数 273
阅读 10
收藏 0

题目要求: 一个字符串中包含着大小写的英文字符,排序后使得大写字符在前,小写字符在后。 如果需要保持原始小写字符的相对位置该怎么办?

public class StrSort{
/**
* 排序字符串,使得大写字母中大写字母在前,小写字母在后
* 
* 此时将大写字母前移
**/
public static void sortStr(char[] chars){
	int index = -1;//记录标记
	int pos = 0;//遍历标记
	char tmp;
	for (; pos < chars.length; pos++) {
		if(chars[pos] >= 'A' && chars[pos] <= 'Z'){
			index++;
			tmp = chars[index];
			chars[index] = chars[pos];
			chars[pos] = tmp;
		}
	}
}
/**
* 同样的要求,但是使得小写字符的相对顺序不改变
* 
* 此时将小写字母后移
**/
public static void sortStr2(char[] chars){
	int index = chars.length;//记录标记
	int pos = chars.length - 1;//遍历标记
	char tmp;
	for (; pos >= 0; pos--) {
		if(chars[pos] >= 'a' && chars[pos] <= 'z'){
			index--;
			tmp = chars[index];
			chars[index] = chars[pos];
			chars[pos] = tmp;
		}
	}
}
/**
* 这两种方式不能保证大写字母和小写字母同时保证顺序,可以考虑使用两个链表实现
*/
public static void main(String[] args){
	char[] chars = "abcAdBefCgh".toCharArray();
	sortStr2(chars);
	for (char x : chars) {
		System.out.print(x + " ");
	}
}
	


}

© 著作权归作者所有

上一篇: docker命令
下一篇: 括号匹配 栈
datacube
粉丝 9
博文 607
码字总数 152394
作品 0
海淀
程序员
私信 提问

暂无文章

java通过ServerSocket与Socket实现通信

首先说一下ServerSocket与Socket. 1.ServerSocket ServerSocket是用来监听客户端Socket连接的类,如果没有连接会一直处于等待状态. ServetSocket有三个构造方法: (1) ServerSocket(int port);...

Blueeeeeee
20分钟前
2
0
用 Sphinx 搭建博客时,如何自定义插件?

之前有不少同学看过我的个人博客(http://python-online.cn),也根据我写的教程完成了自己个人站点的搭建。 点此:使用 Python 30分钟 教你快速搭建一个博客 为防有的同学不清楚 Sphinx ,这...

王炳明
昨天
4
0
黑客之道-40本书籍助你快速入门黑客技术免费下载

场景 黑客是一个中文词语,皆源自英文hacker,随着灰鸽子的出现,灰鸽子成为了很多假借黑客名义控制他人电脑的黑客技术,于是出现了“骇客”与"黑客"分家。2012年电影频道节目中心出品的电影...

badaoliumang
昨天
13
0
很遗憾,没有一篇文章能讲清楚线程的生命周期!

(手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本。 简介 大家都知道线程是有生命周期,但是彤哥可以认真负责地告诉你网上几乎没有一篇文章讲得是完全正确的。 ...

彤哥读源码
昨天
13
0
jquery--DOM操作基础

本文转载于:专业的前端网站➭jquery--DOM操作基础 元素的访问 元素属性操作 获取:attr(name);$("#my").attr("src"); 设置:attr(name,value);$("#myImg").attr("src","images/1.jpg"); ......

前端老手
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部