有这么一个小程序,我想了半天没来得及写上去,大家帮忙解答:已知a、s、d、A、f、h、F要求排序后的结果是:A、a、d、F、f、h、s
请大师指导指导!
请大师指导指导!
解决方案 »
- 关于weblogic8.1的日志
- 求hibernate框架下读数据库生成XML文件的方法
- 谁有sql的例子代表性的??
- 急!!!用Xfire发布服务,如何监视SOAP消息!
- 怎样在oc4j启动时加载一个应用程序
- 天理何在 strtus-config.xml不认<plug-in>!!!!!!!!!!!!
- 网页中传递值的问题
- 第一个简单的javamail出错,,绝对简单,,可我是错啦????
- 求救:tapestry 的poplink的问题
- 在JB8中如何开发Web Services?如给出具体步骤,马上高分奉送!
- 使用Struts2.0标签库出错(要干活,在线等!!)
- Hibernate中一对多怎样进行插入
package com.蜗牛; import java.util.Arrays;
import java.util.Comparator; public class 网络蜗牛 { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String a[]={"a","A","h","f","H","F"};
Comparator c=new Comparator(){
public int compare(Object el1, Object el2){
String key1=el1.toString().toLowerCase()
+"_"+el1.toString();
String key2=el2.toString().toLowerCase()
+"_"+el2.toString();
return key1.compareTo(key2);
}
};
Arrays.sort(a, c);
for(int i=0;i<a.length;i++){
System.out.print(" "+a[i]);
} }
}
测试已通过
这样子还不如
// String[] test = {"a","s","d","A","f","h","F"};
// Arrays.sort(test);,但是不行,
结果是[A, F, a, d, f, h, s],不是楼主想要的蜗牛的不错,但是没看懂
public static void main(String[] args)
{
char a[]={'g','s','A','a','U','K','e','k'};
int l=a.length;
char temp;
int j;
int n=l-1;
for(int i=0;i<l;i++)
{
for(j=0;j<n;j++)
{
//System.out.print(" "+(j+1));
if(Character.toUpperCase(a[j])>=Character.toUpperCase(a[j+1]))
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
n--;
}
for(int k=0;k<l-1;k++)
{
if(Character.toUpperCase(a[k])==Character.toUpperCase(a[k+1]))
{
temp=a[k];
a[k]=a[k+1];
a[k+1]=temp;
}
}
for(int k=0;k<l;k++)
{
System.out.print(" "+a[k]);
}
}
}
a s d A f h F97 115 100 65 102 104 70我们将小于90的字符串都加31.597 115 100 96.5 102 104 101.5我们再进行冒泡排序,得到:
96.5 97 100 101.5 102 104 115即:
A a d F f h s代码如下:
import java.util.*;
public class Test
{
public static void main(String[] args) {
Character [] c={'a','s','d','A','f','h','F'}; //冒泡排序
/*
for(int i=0;i<c.length;i++){
for(int j=i+1;j<c.length;j++){
Double c2asciiF=(c[i].hashCode()<=90?c[i].hashCode()+31.5:c[i].hashCode());
Double c2asciiL=(c[j].hashCode()<=90?c[j].hashCode()+31.5:c[j].hashCode());
if(c2asciiF>c2asciiL){
Character tmp=c[i];
c[i]=c[j];
c[j]=tmp;
}
}
}*/
//循环打印
for(int i=0;i<c.length;i++){
System.out.println(c[i].hashCode());
}
}
}
public class Test
{
public static void main(String[] args) {
Character [] c={'a','s','d','A','f','h','F'}; //冒泡排序
for(int i=0;i<c.length;i++){
for(int j=i+1;j<c.length;j++){
Double c2asciiF=(c[i].hashCode()<=90?c[i].hashCode()+31.5:c[i].hashCode());
Double c2asciiL=(c[j].hashCode()<=90?c[j].hashCode()+31.5:c[j].hashCode());
if(c2asciiF>c2asciiL){
Character tmp=c[i];
c[i]=c[j];
c[j]=tmp;
}
}
}
//循环打印
for(int i=0;i<c.length;i++){
System.out.println(c[i]);
}
}
}
char[] sun=b;
System.out.println("排序前");
System.out.println("----------------------------------");
for(int i=0;i<sun.length;i++){
System.out.print(sun[i]+"\t");
}
String sum="";
char[] sum2=new char[sun.length];
for(int i=0;i<sun.length;i++){
String a=sun[i]+"";
sum=sum+a.toUpperCase();
}
for(int i=0;i<sun.length;i++){
sum2[i]=sum.charAt(i);
} for(int i=0;i<sum2.length-1;i++){
for(int j=0;j<sun.length-1-i;j++){
if((int)sum2[j]>(int)sum2[j+1]){
char se=sum2[j];
sum2[j]=sum2[j+1];
sum2[j+1]=se;
se=sun[j];
sun[j]=sun[j+1];
sun[j+1]=se;
}else if((int)sum2[j]==(int)sum2[j+1]&&(int)sun[j]> (int)sun[j+1]){
char se=sum2[j];
sum2[j]=sum2[j+1];
sum2[j+1]=se;
se=sun[j];
sun[j]=sun[j+1];
sun[j+1]=se;
}
}
}
System.out.println("");
System.out.println("排序后");
System.out.println("----------------------------------");
for(int i=0;i<sun.length;i++){
System.out.print(sun[i]+"\t");
}
}
import java.lang.*;
import java.util.*;public class Test{
public static void main(String[] args){
String[] s = new String[]{"a","s","d","A","f","h","F"};
System.out.println(Arrays.toString(s));
//System.out.println((int)'a');
//System.out.println((int)'A');
//System.out.println((int)'z');
//System.out.println((int)'Z');
String [] s1 = new String[50];
for(int i=0;i<s.length;i++){
char c = getChar(s[i]);
System.out.println(c);
if(isUpper(c)){
//System.out.println(getUpperIndex(c));
s1[getUpperIndex(c)] = s[i];
}else{
//System.out.println(getLowIndex(c));
s1[getLowIndex(c)] = s[i];
}
}
System.out.println(Arrays.toString(s1));
copyArrayForNotNull(s1,s);
System.out.println(Arrays.toString(s));
} //将String转成char并取得值
public static char getChar(String s){
return (s.charAt(0));
}
//取得大写char应该在数组中的位置 存放位置0,2,4...偶数位
public static int getUpperIndex(char c){
final int upperStart = 65;
final int upperEnd = 90;
int i = 2*((int)c-upperStart);
return i;
}
//取得小写char应该在数组中的位置 存放位置1,3,5...奇数位
public static int getLowIndex(char c){
final int lowStart = 97;
final int lowEnd = 122;
int i = 2*((int)c-lowStart)+1;
return i;
}
//判断是否为大写
public static boolean isUpper(char c){
final int upperStart = 65;
final int upperEnd = 90;
final int lowStart = 97;
final int lowEnd = 122;
if((int)c>=upperStart && (int)c<=upperEnd){
return true;
}else{
return false;
}
}
//将数组s1中的非空元素拷贝到s2
public static boolean copyArrayForNotNull(String[] s1,String[] s2){
int s2Index = 0;
try{
for(int i=0;i<s1.length;i++){
if(s1[i]!=null){
s2[s2Index] = s1[i];
}else{
continue;
}
s2Index++;
}
}catch(Exception e){
System.out.println("数组拷贝错误,错误原因:"+e.toString());
return false;
}
return true;
}
}
重新写了遍 方法比较搓 见谅 呵呵
public static void main(String[] args) {
Character[] c = { 'a', 's', 'd', 'A', 'f', 'h', 'F' };
double tempA;
double tempB;
char chA;
for (int i = 0; i < c.length; i++) {
for (int j = i + 1; j < c.length; j++) {
tempA = c[i] < 97 ? c[i] + 31.5 : c[i];
tempB = c[j] < 97 ? c[j] + 31.5 : c[j];
if (tempA > tempB) {
chA = c[i];
c[i] = c[j];
c[j] = chA;
}
}
}
for (int i = 0; i < c.length; i++) {
System.out.println(c[i]);
}
}
}
String[] c={"a", "s", "d", "A", "f", "h", "F" };
for(int i=0;i<c.length;i++){
for(int j=0;j<c.length;j++){
//将他们全变成大写在比较一样的字母就在一起咯
if(c[i].toLowerCase().hashCode()<c[j].toLowerCase().hashCode()){
String t=c[i];
c[i]=c[j];
c[j]=t;
}
//顺序是a A d f F h s
}
}
//再将相同的字母换个位置
for(int i=0;i<c.length-1;i++){
if(c[i].toLowerCase().hashCode()==c[i+1].toLowerCase().hashCode()&&c[i].hashCode()>c[i+1].hashCode()){
String t=c[i];
c[i]=c[i+1];
c[i+1]=t;
}
}
//打印A a d F f h s
for(int i=0;i<c.length;i++){
System.out.println(c[i]+" "+c[i].hashCode());
}
}