黑马程序员技术交流社区
标题:
字符串问题
[打印本页]
作者:
李道福
时间:
2013-4-20 12:33
标题:
字符串问题
本帖最后由 李道福 于 2013-4-20 17:00 编辑
public class TestChar{
/*
需求:将字符串中的大写字符变成小写,小写字符变成大写
思路:1.将字符串变成字符数组
2.遍历字符数组,判断每个字符是否是字母
3.如果是字母,则进一步判断是大写字母还是小写字母,是大写则变成小写,是小写则变成大写
*/
public static void main(String[] args){
String str="FOAGD23fdaf45Ddad34D DW23GI";
String str2=null;
System.out.println("改变前字符串:"+str);
char[] ch=str.toCharArray();
for(int i=0;i<ch.length;i++){
if(Character.isLetter(ch[i])){
if(Character.isLowerCase(ch[i]))
Character.toUpperCase(ch[i]);
else
Character.toLowerCase(ch[i]);
}
}
str=ch.toString();
System.out.println("改变后字符串:"+str);
}
}
复制代码
为什么运行结果不正确,?好像程序也没什么问题啊
作者:
先小涛
时间:
2013-4-20 12:48
本帖最后由 先小涛 于 2013-4-20 12:50 编辑
public class TestChar{
/*
需求:将字符串中的大写字符变成小写,小写字符变成大写
思路:1.将字符串变成字符数组
2.遍历字符数组,判断每个字符是否是字母
3.如果是字母,则进一步判断是大写字母还是小写字母,是大写则变成小写,是小写则变成大写
*/
public static void main(String[] args){
String str="FOAGD23fdaf45Ddad34D DW23GI";
String str2=null;
System.out.println("改变前字符串:"+str);
char[] ch=str.toCharArray();
for(int i=0;i<ch.length;i++){
if(Character.isLetter(ch[i])){
if(Character.isLowerCase(ch[i]))
ch[i] = Character.toUpperCase(ch[i]); //变大写之后要存储起来
else
ch[i] = Character.toLowerCase(ch[i]); //变小写之后要存储起来
}
}
str2=ch.toString();
System.out.print("改变后字符串:");
for(char c:ch){
System.out.print((char)c);
}
}
}
复制代码
作者:
先小涛
时间:
2013-4-20 12:52
先小涛 发表于 2013-4-20 12:48
不同之处,在于注释的地方。你改变大小后,要存到数组中。
作者:
晓风妮子
时间:
2013-4-20 12:55
本帖最后由 晓风妮子 于 2013-4-20 13:10 编辑
public class TestChar{
/*
需求:将字符串中的大写字符变成小写,小写字符变成大写
思路:1.将字符串变成字符数组
2.遍历字符数组,判断每个字符是否是字母
3.如果是字母,则进一步判断是大写字母还是小写字母,是大写则变成小写,是小写则变成大写
*/
public static void main(String[] args){
String str="FOAGD23fdaf45Ddad34D DW23GI";
String str2=null;
System.out.println("改变前字符串:"+str);
char[] ch=str.toCharArray();
for(int i=0;i<ch.length;i++){
if(Character.isLetter(ch
)){
if(Character.isLowerCase(ch))
else
ch=Character.toLowerCase(ch);
}
}
str=new String(ch); //
这里可以调用String的构造方法
System.out.println("改变后字符串:"+str);
}
}
你代码中的错误是因为char[]是字符数组类型,他的toString方法没有重写,仍然用的是Object中的,所以打印的是地址值。如果你非要用toString方法,可以参考一下代码。
public class TestChar{
/*
需求:将字符串中的大写字符变成小写,小写字符变成大写
思路:1.将字符串变成字符数组
2.遍历字符数组,判断每个字符是否是字母
3.如果是字母,则进一步判断是大写字母还是小写字母,是大写则变成小写,是小写则变成大写
*/
public static void main(String[] args){
String str="FOAGD23fdaf45Ddad34D DW23GI";
String str2="";
System.out.println("改变前字符串:"+str);
char[] ch=str.toCharArray();
for(int i=0;i<ch.length;i++){
if(Character.isLetter(ch)){
if(Character.isLowerCase(ch))
ch=Character.toUpperCase(ch);
else
ch=Character.toLowerCase(ch);
str2=str2+Character.toString(ch);
}
else{
str2=str2+Character.toString(ch);
}
}
System.out.println("改变后字符串:"+str2);
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2