if (ch >= 'A' && ch <= 'Z') {
String temp1 = ch + "";
sb.append(temp1.toLowerCase());
} else if (ch >= 'a' && ch <= 'z') {
String temp = ch + "";
sb.append(temp.toUpperCase());
}
talons 发表于 2016-8-18 21:21
你的思路没问题。代码也没什么问题。你这是用记事本写的程序?用eclipse应该直接编译都过不了的。
唯一的问 ...
// TODO Auto-generated method stub
String s = "HelloWorld";
char[] ch = s.toCharArray();
StringBuffer sb = new StringBuffer();
for (int i = ch.length - 1; i >= 0; i--) {
if (ch >= 'A' && ch <= 'Z') {
String temp1 = ch + "";
//字符串一旦定义不可改变,必须重新接受转换之后的字符
String str1 = temp1.toLowerCase();
sb.append(str1);
} else if (ch >= 'a' && ch <= 'z') {
String temp = ch + "";
String str1 = temp.toUpperCase();
//System.out.print(str1);
sb.append(str1);
}
}
System.out.println(sb);
/*System.out.println();
System.out.println("-----------");
String str = "abcdefg";
System.out.println(str.toUpperCase());*/
double_x 发表于 2016-8-18 21:26
[Java] 纯文本查看 复制代码
// TODO Auto-generated method stub
String s = "HelloWorld";
不会啊,其实如果不是数组的问题你的源码直接放eclipse也可以直接跑起来啊,应该不存在说String不能改变的问题。我觉得这里如果说只是用一次就没必要定义一个temp变量。用Character类里面的toLowerCase和toUpperCase方法,直接把char数据放进去装换大小写就行了。
[mw_shl_code=java,true]package demos;
public class Demo4 {
public static void main(String[] args) {
String s = "HelloWorld";
char[] ch = s.toCharArray();
System.out.println(ch);
StringBuffer sb = new StringBuffer();
for (int i = ch.length - 1; i >= 0; i--) {
if (ch >= 'A' && ch <= 'Z') {
sb.append(Character.toLowerCase(ch));
} else if (ch >= 'a' && ch <= 'z') {
sb.append(Character.toUpperCase(ch));
}
}
System.out.println(sb);
/*
输出结果:
HelloWorld
DLROwOLLEh
*/
}
}
talons 发表于 2016-8-18 21:34
不会啊,其实如果不是数组的问题你的源码直接放eclipse也可以直接跑起来啊,应该不存在说String不能改变 ...
double_x 发表于 2016-8-18 22:17
不是吧 你的char类型的没有toLowerCase方法吧 你装箱之后难道就有了?????? ...
雪连城 发表于 2016-8-19 22:38
作为java新人的我默默路过
talons 发表于 2016-8-19 21:53
Character这里是当工具类在用啊
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |