输入一个字符串,比如 ab12cd34 ef ,要求将连在一起的字母比如 ab cd ef 看成一个个小的整体并倒序输出,而非字母直接倒序,比如原字符串的输出结果是 ef21cd 43ab ,有知道怎么实现的吗,不胜感激~
解决方案 »
- 新手请教:CSDN某一篇贴产生随机数的程序加了几句怎么就错了
- 请问有申请过jsp空间的吗
- eclipse是否可以图形化jsp页面吧
- 谁有JAVA农历的算法(带有特殊节日的最好,象:情人节、国庆节)
- 求助 对数组元素进行分组的算法
- 事实证明:Java比C++快(总论)
- JAVA的高手高手高高手,JavaTM Mobile Information Device Profile (MIDP) 1.0.3是如何在98中安装的?????
- 比较<<Thinking in java 2e>>与<<Java大学教程>>?欢迎
- JBuilder Corba Setup ?
- 求助: Java POI如何输出带函数公式的单元格
- 求好的英文技术网站 最好是论坛,博客都有的,
- java新人如何解决问题
public static void main(String[] args) {
byte[] s = "ef21cd 43ab".toLowerCase().getBytes();
byte[] result = new byte[ (s.length -1) * 2];
int index = 0;
for (int i = 0; i < s.length - 1; i++) {
if(s[i] <97 && s[i] >= 122) continue;
if(s[i+1] == s[i]+1){
result[index++] = s[i+1];
result[index++] =s[i];
}
}
System.out.println(new String(result));
}
String b[] = a.split("\\d+");
StringBuffer sb = new StringBuffer();
for(int i=0;i<b.length;i++){
System.out.println(b[i]);
sb.append(b[i].trim());
}
System.out.println(sb.reverse());
System.out.println(new StringBuffer(str).reverse());
这个就可以 不用for循环 建议看一下StringBuffer 的用法
char [] d={'a','c','g','r'};
char c='a';
for(int i=0;i<d.length;i++){
for(int j=0;j<d.length;j++) {
if(d[i]<d[j]){
c=d[j];
d[j]=d[i];
d[i]=c;
}
}
}
System.out.println(Arrays.toString(d));
}
StringBuffer str = new StringBuffer("ab123cd123ef".replaceAll("\\d+", ""));
System.out.println(str.reverse());
import java.lang.Character;
import java.lang.StringBuffer;
public class Test
{
public String testString;
public String[] charString ;
public String[] numString ;
public Test(String s)
{
this.testString=s;
}
public static String chatToString(char ch)
{
String str = String.valueOf(ch);
return str;
}
public static void reverse(String s) // 反向输出字符串
{
for(int i=s.length()-1;i>=0;i--)
System.out.print(s.charAt(i));
}
public static boolean firstisletter(String s) //字符串的首字母是否是字母
{
return Character.isLetter(s.charAt(1));
}
public static int notlettersNum(String s) //非字母的字符串个数
{
String[] charString2=new String[20];
for(int j=0;j<20;j++) charString2[j]="";
s=s.toLowerCase();
int index=0;
if (!firstisletter(s)) index++;
for(int i=0;i<s.length()-1;i++)
{
if(Character.isLetter(s.charAt(i)))
{
continue;
}
else
{
charString2[index]=charString2[index].concat(chatToString(s.charAt(i)));
//System.out.println(chatToString(s.charAt(i)));
}
if((i+1)<(s.length()-1) && Character.isLetter(s.charAt(i+1)))
{
index++;
}
}
return index;
}
public static int lettersNum(String s) //字母的字符串个数
{
String[] charString1=new String[10];
for(int j=0;j<10;j++) charString1[j]="";
s=s.toLowerCase();
int index=0;
if (firstisletter(s)) index++;
for(int i=0;i<s.length()-1;i++)
{
if(!Character.isLetter(s.charAt(i)))
{
continue;
}
else
{
charString1[index]=charString1[index]+chatToString(s.charAt(i));
}
if((i+1)<(s.length()-1) && !Character.isLetter(s.charAt(i+1)))
{
index++;
}
}
return index;
}
public String[] getchars(String sss) //得到字母的字符串数组
{
int letterNum =Test.lettersNum(sss);
int notletterNum=Test.notlettersNum(sss);
if(firstisletter(sss))
{
letterNum++;
}
else
{
notletterNum++;
}
String s=sss;
int charlen=letterNum;
String[] charString1=new String[charlen];
for(int j=0;j<charlen;j++) charString1[j]="";
s=s.toLowerCase();
int index=0;
for(int i=0;i<s.length();i++)
{
if(!Character.isLetter(s.charAt(i)))
{
continue;
}
else
{
charString1[index]=charString1[index]+chatToString(s.charAt(i));
}
if((i+1)<(s.length()-1) && !Character.isLetter(s.charAt(i+1)))
{
index++;
}
}
return charString1;
}
public String[] getnums(String sss) //得到非字母的字符串数组
{
int letterNum =Test.lettersNum(sss);
int notletterNum=Test.notlettersNum(sss);
if(firstisletter(sss))
{
letterNum++;
}
else
{
notletterNum++;
}
String s=sss;
int charlen=notletterNum;
String[] charString2=new String[charlen];
for(int j=0;j<charlen;j++) charString2[j]="";
s=s.toLowerCase();
int index=0;
for(int i=0;i<s.length();i++)
{
if(Character.isLetter(s.charAt(i)))
{
continue;
}
else
{
charString2[index]=charString2[index].concat(chatToString(s.charAt(i)));
//System.out.println(chatToString(s.charAt(i)));
}
if((i+1)<(s.length()-1) && Character.isLetter(s.charAt(i+1)))
{
index++;
}
}
return charString2;
}
public static void main(String[] args)
{
String str="ab12cd34 ef";
Test t1= new Test(str);
String[] ss = t1.getchars(str);
String[] num=t1.getnums(str);
int letterNum =t1.lettersNum(str);
int notletterNum=t1.notlettersNum(str);
int j=0;
for(int i=letterNum-1;i>=0;i--)
{
System.out.print(ss[i]);
if(j<notletterNum)
{
Test.reverse(num[j++]);
}
} }
}