黑马程序员技术交流社区
标题:
字符串问题
[打印本页]
作者:
沈艳南
时间:
2013-5-18 01:19
标题:
字符串问题
本帖最后由 沈艳南 于 2013-5-20 00:49 编辑
/*
* 对字符串中的数字进行排序
* "45,65,1,7,34,-2"
*
*/
public class StringDemo1 {
public static void main(String[] args) {
String s = "45,65,1,7,34,-2";
String[] ch=method(s,",");
System.out.println(method1(ch,","));
}
public static String[] method(String str,String reg){
//建立一个方法,将字符串 转成字符串数组.
String[] ch = str.split(reg);
//对数组中的每个元素转成数值型变量,比较大小.
for(int x = 0;x < ch.length;x++){
for(int y = 0;y < ch.length-1;y++){
if(Integer.parseInt(ch[x])>Integer.parseInt(ch[y])){
String temp = ch[x];
ch[x]=ch[y];
ch[y]=temp;
}
}
}
return ch;
}//输出
public static String method1(String[] ch,String reg){
String str = "";
for(int x = 0;x < ch.length;x++){
if(x!=ch.length-1){
str = str+ch[x]+reg;
}
else{
str = str+ch[x];
}
}
return str;
}
}
作者:
神之梦
时间:
2013-5-18 01:23
楼主米说啥问题,
作者:
沈艳南
时间:
2013-5-18 21:42
神之梦 发表于 2013-5-18 01:23
楼主米说啥问题,
哦 是的 就是按照升序排列
作者:
不胖的胖子
时间:
2013-5-19 08:11
本帖最后由 不胖的胖子 于 2013-5-19 08:23 编辑
/*
其实这是个排序问题。
为了说明这个问题,我把你的代码简化下:
直接在int 数组中进行,其实效果一样。
你的排序主体部分如下:
for(int x = 0;x < ch.length;x++){
for(int y = 0;y < ch.length-1;y++){
if(Integer.parseInt(ch[x])>Integer.parseInt(ch[y])){
String temp = ch[x];
ch[x]=ch[y];
ch[y]=temp;
}
}
*/
import java.util.Arrays;
public class Test
{
public static void main(String args[]){
int[] arr = new int[]{45,65,1,7,34,-2};//还是排你原来的数组
/*
沿用你的排序方式
*/
for(int i=0;i<arr.length;i++){
sop("第"+(i+1)+"轮比较");
for(int j=0;j<arr.length-1;j++){
if(arr
<arr[j]){ //改成小于号就可以完成升序排列
int temp = arr
;
arr
= arr[j];
arr[j] = temp;
}
sop(Arrays.toString(arr));
}
}
sop(Arrays.toString(arr));//使用Arrays工具类,便于查看数组内容
}
public static void sop(Object obj){
System.out.println(obj);
}
}
/*
我对排序过程进行了一个跟踪,目前
不知道你这属于啥排序。我现在了解原理
的排序方式也就选择和冒泡排序。对比下
你的排序是比较慢的一种方式。后面会给出
原因。
---------- 运行java程序 ----------
第1轮比较
[45, 65, 1, 7, 34, -2]
[65, 45, 1, 7, 34, -2]
[65, 45, 1, 7, 34, -2]
[65, 45, 1, 7, 34, -2]
[65, 45, 1, 7, 34, -2]
第2轮比较
[45, 65, 1, 7, 34, -2]
[45, 65, 1, 7, 34, -2]
[45, 65, 1, 7, 34, -2]
[45, 65, 1, 7, 34, -2]
[45, 65, 1, 7, 34, -2]
第3轮比较
[1, 65, 45, 7, 34, -2]
[1, 45, 65, 7, 34, -2]
[1, 45, 65, 7, 34, -2]
[1, 45, 65, 7, 34, -2]
[1, 45, 65, 7, 34, -2]
第4轮比较
[1, 45, 65, 7, 34, -2]
[1, 7, 65, 45, 34, -2]
[1, 7, 45, 65, 34, -2]
[1, 7, 45, 65, 34, -2]
[1, 7, 45, 65, 34, -2]
第5轮比较
[1, 7, 45, 65, 34, -2]
[1, 7, 45, 65, 34, -2]
[1, 7, 34, 65, 45, -2]
[1, 7, 34, 45, 65, -2]
[1, 7, 34, 45, 65, -2]
第6轮比较
[-2, 7, 34, 45, 65, 1]
[-2, 1, 34, 45, 65, 7]
[-2, 1, 7, 45, 65, 34]
[-2, 1, 7, 34, 65, 45]
[-2, 1, 7, 34, 45, 65]
[-2, 1, 7, 34, 45, 65]
输出完成 (耗时 0 秒) - 正常终止
*/
作者:
殇_心。
时间:
2013-5-19 11:32
如果问题已解决,请及时修改分类,否则继续提问,谢谢合作!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2