java英文字母排序问题...

编写一个程序,当输入不超过60个字符组成的英文文字时,计算机将这个句子中的字母按英文字典字母顺序重新排列,排列后的单词的长度要与原始句子中的长度相同。例如:输入:THEP... 编写一个程序,当输入不超过60个字符组成的英文文字时,计算机将这个句子
中的字母按英文字典字母顺序重新排列,排列后的单词的长度要与原始句子中的长度
相同。例如:

输入:

THE PRICE OFBREAD IS ¥1 25 PER POUND

输出:

ABC DDEEE EFHIINO OP ¥1 25 PPR RRSTU

并且要求只对A到Z的字母重新排列,其它字符保持原来的状态。

这要怎么写程序,最好能贴上代码,谢啦。。。
展开
 我来答
ycdxg
2010-07-26 · TA获得超过410个赞
知道答主
回答量:407
采纳率:0%
帮助的人:309万
展开全部
public static void main(String[] args) {
String str="THE PRICE OFBREAD IS ¥1 25 PER POUND";
StringBuffer buff=new StringBuffer(str);
char[] arr=str.toCharArray();
Arrays.sort(arr);

for(int i=0,j=0;i<arr.length;i++){
if(String.valueOf(arr[i]).matches("[a-zA-Z]")){
while(true){
if(String.valueOf(buff.charAt(j)).matches("[a-zA-Z]")){
buff.setCharAt(j, arr[i]);
j++;
break;
}
j++;
}
}
}

System.out.println(buff.toString());
}
shiva1981
2010-07-26 · TA获得超过773个赞
知道小有建树答主
回答量:638
采纳率:0%
帮助的人:772万
展开全部
1 直接用str.toCharArray先把String转换成char[] buff
2 用Arrays.sort直接排序buff
3 找到排序后的第一个英文字母,假定位置是p
4
for (int i=0;i<str.length;i++){
if (str.charAt(i)>='A' && str.charAt(i)<='Z'){//可以加上小写
把位置i的字母换成buff[p];
p++;
}
}

over
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式