package str;public class StringUpDown { /**
* @param args
*/
public static void main(String[] args) {
String str="aAbebBssE";
char[] strArray = null;
for(int i=0;i<str.length();i++){
strArray = str.toCharArray();
strArray[i] = getReverseChar(strArray[i]);
str = new String(strArray);
}
System.out.println(str);
} private static char getReverseChar(char c) {
if(Character.isLowerCase(c)){
return Character.toUpperCase(c);
}else{
return Character.toLowerCase(c);
}
}
}
解决方案 »
- 求助一个scjp的题目,请给出答案后,分析下
- 我用Socket实现c/s通讯小程序,为什么c端发送过去,s端却没有接收到
- HttpClient 保持会话
- 【如何理解面向对象?】_JAVA面试/笔试题
- 请各位大侠帮忙看一下啊,这到底是怎么回事
- 怎么使JTable中用户选中的任意一行信息不能编辑啊??
- java数据流的问题!!急等!!解决后结帖有分!!高手进
- 从SecretKey deskey = keygen.generateKey(); 得到的密钥能存成文件吗?
- 急,java里面的中文及字符串问题
- 请介绍几本有关JBuilder的入门级好书。
- 有哪位使用过jdk1.7 ?可以介绍介绍。闭包好用不?
- JFileChooser 问题
这个从实现角度来说应该不难,但是关键是考虑效率问题吧。
可,怎么把字母转成ASCII码啊?
import java.util.*;class bijiao
{
public static void main(String[] args)
{
System.out.println(run("shkajyFskjhSDAKisjkSjkhsdHSAhjksASDhjklaa"));
} public static StringBuffer run(String temp){
char m[]=temp.toCharArray();
Arrays.sort(m);
for(int y=0;y<m.length;y++){
for(int z=0;z<m.length;z++){
if (m[y]+32==m[z])
{
while(m[y]==m[y+1]){
y++;
}
char l=m[z];
for(int w=z;w>y+1;w--){
m[w]=m[w-1];
}
m[y+1]=l;
}
}
}
StringBuffer sb = new StringBuffer("");
for(int x =0;x<m.length;x++){
sb.append(m[x]);
}
return sb;
}
}---------- java run ----------
AAAaaaDDdFHhhhhhKkkkkkkSSSSsssssijjjjjjly输出完成 (耗时 1 秒) - 正常终止
package number;import java.util.Arrays;
import java.util.Collections;
import java.util.List;public class number { /**
* @param args
*/
public static void main(String[] args) {
String source = "hbaBACDEFGHIJKabcdefghijklmnopqrLMNOPQRSTYVWSYZstsyz";
byte [] by = source.getBytes();
ByteCompare [] bc = new ByteCompare[by.length];
for(int i = 0 ; i< by.length ; i ++){
bc[i] = new ByteCompare(by[i]);
}
Arrays.sort(bc,Collections.reverseOrder());
System.out.println("by = " + Arrays.toString(bc));
}}class ByteCompare implements Comparable {
private byte a ;
ByteCompare(byte a ){
this.a = a;
}
public byte getByte(){
return this.a;
}
public int compareTo(Object o) {
byte b = ((ByteCompare)o).getByte();
int re = 0;
if(a>96){ //a为小写
if(b>96){ //b为小写
re = a<b?1:(a==b?0:-1);
}else{ //b为大写
re = (a-32)<b?1:-1;
}
}else{ //a为大写
if(b>96){ //b为小写
re = (a+32)<b?1:((a+32)==b?1:-1);
}else{ //b为大写
re = a<b?1:(a==b?0:-1);
}
}
return re;
}
public String toString(){
return String.valueOf((char)a);
}
}引用thinking in java 中的一段话 “程序设计的基本目标是“将保持不变的事物与会发生改变的事物相分离”,而这里,不变的是通用的排序算法,变化的是各种对象相互比较的方式。因此,不是将进行比较的代码编写成为不同的子程序,而是使用回调技术(callback)。通过使用回调,可以将会发生变化的代码分离出来,然后由不会发生变化的代码回头调用会发生变化的代码。”
* @param args
*/
public static void main(String[] args) {
String str ="FDSAJFWEIQsdfjslakdweijdskajkerwqEWERQdsafjfdsa";
char[] strArray = str.toCharArray();
Arrays.sort(strArray); int index = 0;
for (int i = 0; i < strArray.length; i++) {
for (int k = 0; k < strArray.length - 1; k++) {
char indexC = strArray[i];
if (indexC == strArray[k + 1]) {
index = k+1;
} }
char currentChar = strArray[i];
for (int j = 0; j < strArray.length; j++) {
if (strArray[j] - 32 == currentChar) {
str = new String(strArray);
String stra = str.substring(0, index + 1);
String strb = str.substring(index + 1, j);
String strc = str.substring(j, j + 1);
String strd = str.substring(j + 1, strArray.length);
str = stra + strc + strb + strd;
strArray = str.toCharArray();
}
}
}
System.out.println(str);
}
}
char[] ss=s.ToCharArray(); Array.Sort(ss,new Comparer());
MessageBox.Show(new String(ss));
class Comparer : IComparer<char>
{ public int Compare(char x, char y)
{
return char.ToUpper(x).CompareTo(char.ToUpper(y));
}
}
{
return char.ToUpper(x).CompareTo(char.ToUpper(y));
}
--------------------->>>>> public int Compare(char x, char y)
{
int ret= char.ToUpper(x).CompareTo(char.ToUpper(y));
if(ret==0)
{
ret= x.CompareTo(y);
}
return ret;
}
import java.util.Comparator;class MyComparator implements Comparator { @Override
public int compare(Object o1, Object o2) {
if (o1 instanceof Character && o2 instanceof Character) {
Character c1 = (Character) o1;
Character c2 = (Character) o2;
if (Character.toUpperCase(c1) == Character.toUpperCase(c2))
return c1 - c2;
return Character.toUpperCase(c1) - Character.toUpperCase(c2);
}
return 0;
}}public class test { public static void main(String... args) {
String str = "FDSAJFWEIQsdfjslakdweijdskajkerwqEWERQdsafjfdsa";
char[] c1 = str.toCharArray();
Character[] c = new Character[c1.length];
for (int i = 0; i < c1.length; i++)
c[i] = c1[i];
Arrays.sort(c, new MyComparator());
for (int i = 0; i < c1.length; i++)
c1[i] = c[i];
System.out.println(new String(c1));
}
}
输出结果:
AaaaaDdddddEEEeeFFfffIiJjjjjkkklQQqRrSsssssWWww