| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 593 人关注过本帖
标题:写了一个小程序,但有个小错误,不知道怎么改??我是新手,求指教!
只看楼主 加入收藏
vivien薄荷芯
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2012-11-11
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:4 
写了一个小程序,但有个小错误,不知道怎么改??我是新手,求指教!
这是个字符串转换的小程序,要求一句字符串间多余空格变为一个,并且每个单词首字母大写。但是我写的程序中有一句话总显示错误,不知道怎么改,求指教?
例如:
用户输入:
you and     me what  cpp2005program
则程序输出:
You And Me What Cpp2005program

import java.util.*;
public class trans {
    public static void main(String[] args) {
        Scanner str=new Scanner(System.in);   
        String p,q;
        p=str.nextLine();
        p=p.replaceAll(" +", " ");
        char[] p1=p.toCharArray();
        char[] q1=q.toCharArray();
        int i;
        for(i=0;i<p1.length;i++)
        {if((p1.charAt(i)==' ')&&(p1[i+1]>='a')&&(p1[i+1]<='z')||(i=0))
                {
                q1[i+1]=(char) (p1[i+1]-32);
                }
        else q1[i]=p1[i];
               
        }
        System.out.println(q1);
              
    }
}
搜索更多相关主题的帖子: 用户 字符串 public 
2012-12-24 20:11
w527705090
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:11
帖 子:441
专家分:1882
注 册:2011-6-28
收藏
得分:1 
Java我也是新手,还有好多方法还没有学。。。不懂帮顶了

有心者,千方百计;无心者,千难万难。
2012-12-24 20:26
hhwz
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:87
帖 子:687
专家分:4502
注 册:2011-5-22
收藏
得分:2 
程序代码:
public static void main(String[] args) {
        Scanner str = new Scanner(System.in);
        String p;
        p = str.nextLine();
        p = p.replaceAll(" +", " ");
        String[] p1 = p.split(" ");
        String s ="";
        for(int i=0;i<p1.length;i++){
            if(p1[i].charAt(0)>='a'&&p1[i].charAt(0)<='z'){
                p1[i]=p1[i].substring(0, 1).toUpperCase()+p1[i].substring(1, p1[i].length());
            }
            s+=p1[i]+" ";
        }
        System.out.println(s);

    }

2012-12-24 21:06
Kingbox_tang
Rank: 7Rank: 7Rank: 7
来 自:天津师范大学
等 级:黑侠
威 望:3
帖 子:146
专家分:677
注 册:2012-11-27
收藏
得分:2 
这个我碰到过
比如 :you and     me what  cpp2005program是你想要转换的吧,但是你用char[] p1=p.toCharArray();这个的话它是把前面的话转成you     and        me         what          cpp2005program   这样五个元素的数组了,知道不?而不是你想要的每个字母的数组。希望对你有用,谢谢。

旨在提高编程水平,学有所用,学有所成,学有所为。
2012-12-25 12:03
hqucsx
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2012-1-1
收藏
得分:0 
可以用正则
2012-12-25 21:53
vivien薄荷芯
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2012-11-11
收藏
得分:0 
我自己也研究出来能够运行的程序了,不过还是很谢谢大家。我的程序是
import java.util.*;
public class trans {
    public static void main(String[] args) {
        Scanner str=new Scanner(System.in);   
        String p;
        p=str.nextLine();
        p=p.replaceAll(" +", " ");
        char[] p1=p.toCharArray();        
        int i;
        if (Character.isLowerCase(p1[0]))
            p1[0]=Character.toUpperCase(p1[0]);
        for(i=1;i<p1.length;i++)
        {  if((p1[i]==' ')&&(p1[i+1]>='a')&&(p1[i+1]<='z'))
              {p1[i+1]=(char)(p1[i+1]-32);}                        
        }
        System.out.println(p1);
              
    }
}

2012-12-26 20:20
快速回复:写了一个小程序,但有个小错误,不知道怎么改??我是新手,求指教!
数据加载中...
 
   



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

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