标题:奇怪的问题
只看楼主
lilyfei
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2007-3-9
 问题点数:0 回复次数:5 
奇怪的问题
下面的代码可以运行:就是大小写转换时,有时会出错!大小写字母的个数也会算错,是什么异常吗?


import java.io.*;
class Exercise56{
public static void main(String args[]) throws IOException{
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
String text=new String(in.readLine());
int m=0,n=0;
int x=text.length();
for(int i=0;i<x;i++){
if(Character.isLowerCase(text.charAt(i)))
{m++;
text=text.replace(text.charAt(i),Character.toUpperCase(text.charAt(i)));

}
else if(Character.isUpperCase(text.charAt(i)))
{ n++;
text=text.replace(text.charAt(i),Character.toLowerCase(text.charAt(i))) ;
}

}

System.out.println(text);
System.out.println("大写:"+n+"\t"+"小写:"+m);
}
}
搜索更多相关主题的帖子: int String text new java 
2007-05-10 14:56
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
得分:0 

当你输入数字的时候呢


可惜不是你,陪我到最后
2007-05-10 15:17
lilyfei
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2007-3-9
得分:0 

数字的话,直接输出数字呀

2007-05-10 16:52
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
得分:0 
[CODE]import java.io.*;
public class Test{
public static void main(String args[]) throws IOException{
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
StringBuffer text=new StringBuffer(in.readLine());
int m=0,n=0;
int x=text.length();
for(int i=0;i<x;i++){
if(Character.isLowerCase(text.charAt(i))) {
m++;
text.setCharAt(i,Character.toUpperCase(text.charAt(i)));

} else if(Character.isUpperCase(text.charAt(i))) {
n++;
text.setCharAt(i,Character.toLowerCase(text.charAt(i))) ;
}

}

System.out.println(text);
System.out.println("大写:"+n+"\t"+"小写:"+m);
}
}[/CODE]

改成这个就可以了,因为你用String的replace方法会把所有一样的字母都替换,这样就会选成替换来替换去的情况
所以,建议你使用StringBuffer,它是可变的对变,不像String是不可变的对象.这样也不会产生大量的中间对象

可惜不是你,陪我到最后
2007-05-10 17:52
lilyfei
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2007-3-9
得分:0 
建议挺好。thanks.
这里面出现的问题是异常吗?
2007-05-11 12:25
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
得分:0 
里面的问题不是异常,而是程序的设计问题

可惜不是你,陪我到最后
2007-05-11 15:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-138248-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.441920 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved