String str = "88,22,77,00,33,55,44,11,66,99";上面的要排成这样:String str = "99,00,88,11,77,22,66,33,55,44";就是:最大的,最小的,剩下里面最大的,剩下里面最小的,写出代码。
解决方案 »
- 在校学习java的,现在实习在一家软件公司做的android小程序,如何在空间时间学习java web
- 线程池问题
- 关于日期计算3句注释(代码已有)在线等
- Eclipse没有编辑代码提示的问题,谢谢,很急!
- 计算两数的结果,,并显示在LABEL中,,结果显不出???????????
- 关于堆,栈和JAVA的数据的存储!
- 建议不要使用类型 Date 的方法 getYear()?如何解决?
- 如何捕获鼠标右击事件?
- javacc,有研究过的朋友给介绍介绍,谢了
- 数据结构JAVA描述(英文版,清华出版的)这本书怎么样?
- 一个弄不明白的I/O问题,关于socket的
- ~~~~~~问一道笔试中经常出现的题~~~~~~
在Array.sort()排序
然后自己取头取尾组成字符串即可
import java.util.Arrays;public class Sort {
/**
* 基本思路:先分割字符串,得到字符串数组;然后对该数组从小到大排序;
* 定义两个变量,一个表示最小值的下标lower,另一个表示最大值的下标upper,每次先
* 取upper对应的值,再取lower对应的值,然后lower++,upper--。直到lower大于等于upper。
* @param args
*/
public static void main(String[] args) {
String str = "88,22,77,00,33,55,44,11,66,99";
String[] temp = str.split(",");
Arrays.sort(temp);
int lower = 0;
int upper = temp.length - 1;
StringBuffer sb = new StringBuffer();
while(lower < upper) {
sb.append(temp[upper] + "," + temp[lower] + ",");
upper--;
lower++;
}
str = sb.substring(0, sb.length()-1);
System.out.println(str);
}
}
public class A {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String[] ss={"1","3","5","7","2","4","6","8","9"};
for(int i=0;i<ss.length;i++){
for(int j=i+1;j<ss.length;j++){
if(Integer.parseInt(ss[i])<Integer.parseInt(ss[j])){
String temp="";
temp=ss[j];
ss[j]=ss[i];
ss[i]=temp;
}
}
i++;
for(int j=i+1;j<ss.length;j++){
if(Integer.parseInt(ss[j])<Integer.parseInt(ss[i])){
String temp="";
temp=ss[j];
ss[j]=ss[i];
ss[i]=temp;
}
}
}
for(int i=0;i<ss.length;i++){
System.out.println("ss["+i+"]==="+ss[i]);
}
}}
仅供参考
public class Test { public static void main(String[] args) {
String str = "88,22,77,00,33,55,44,11,66,99";
System.out.println(getNewStr(str));
} public static String getNewStr(String str){
String[] ss = str.split(",");
int[] values = new int[ss.length];
String result = "";
for (int i = 0; i < values.length; i++) {
values[i] = Integer.parseInt(ss[i]);
}
quickSort(values, 0, values.length - 1);
int head = 0;
int rear = values.length - 1;
while(head < rear){
result += values[rear--] + "," + values[head++] + ",";
}
return result.substring(0, result.lastIndexOf(","));
}
private static void quickSort(int[] arr, int head, int end) {
if (head >= end) {
return;
}
int index = head;
for (int i = head; i < end; i++) {
if (arr[i] <= arr[end]) {
if (index != i) {
arr[index] ^= arr[i];
arr[i] ^= arr[index];
arr[index] ^= arr[i];
}
index++;
}
}
if (index != end) {
arr[index] ^= arr[end];
arr[end] ^= arr[index];
arr[index] ^= arr[end];
}
quickSort(arr, head, index - 1);
quickSort(arr, index + 1, end);
}}
/*分割,从小到大排序*/
String str = "88,22,77,00,33,55,44,11,66,99";
String[] s = str.split(",");
Arrays.sort(s); /*创建一个新字符串数列储存排序后的*/
String[] ss = new String[s.length];
/*在数组0,2,4……中插入从大到小的数*/
for (int i = 0, j = ss.length - 1; i < ss.length; i += 2, j--) {
ss[i] = s[j];
}
/*在数组1,3,5……中插入从小到大的数*/
for (int i = 1, j = 0; i < ss.length; i += 2, j++) {
ss[i] = s[j];
}
/*合并、输出*/
String result = "";
for (String n : ss) {
result += (n + ",");
}
System.out.println(result);
}
}