xiaolaba3330 发表于 2008-4-6 23:22

朋友来帮忙找下错

题目:4.编写程序在一个字符串中所有非字母、数字字符位置再插入同样的一个字符

我的程序如下:
class zy04 {
    public StringBuffer str;
    public zy04() {
    }

    public static void main(String[] args) {
        int i=0,j=0;
        String s=" ";
        String ss=" ";
       StringBuffer str=new StringBuffer("Thanks,for.your?help");
       j=str.length();
       for(i=0;i<j;i++)
       {
           ss=str.substring(i);
           if (ss.compareTo("A")>=0 && ss.compareTo("Z")<=0 ||
               ss.compareTo("a")>=0 && ss.compareTo("z")<=0 ||
               ss.compareTo("0")>=0 && ss.compareTo("9")<=0)
           {
             s=ss;
             str.insert(i-1,s);
             j=str.length();
             i=i+2;
           }
       }
      
       System.out.println(str.toString());
    }
}
麻烦各位看一下 哪儿错了 谢谢!

aipb2007 发表于 2008-4-7 00:55

[code]public class JavaProgram{
        public static String proc(String s){
                StringBuffer sb = new StringBuffer(s);
                int l = sb.length();
                char c;
                for (int i = 0;i < l;++i){
                        c = sb.charAt(i);
                        if (!Character.isDigit(c) && !Character.isLetter(c)){
                                sb.insert(i,c);
                                ++l;
                                ++i;
                        }
                }
                return sb.toString();
        }
        public static void main(String[] args){
                System.out.println(proc("Thanks,for.your?help"));
        }               
}[/code]

输出:Thanks,,for..your??help

不知道是不是这个意思

xiaolaba3330 发表于 2008-4-7 01:00

强人,就是这个意思! 不过能不能麻烦您给我稍微的解释一下呢?

[[it] 本帖最后由 xiaolaba3330 于 2008-4-7 01:03 编辑 [/it]]

aipb2007 发表于 2008-4-7 01:17

你的代码赋值来赋值去的,我也没看明白,不过有一点,你插入一个char后,字符串长度会改变,你要注意越界的问题。

我的很容易明白吧,你认真看的话,我是查文档(那些方法)写的,我只知道java最基础的语法而已。

xiaolaba3330 发表于 2008-4-7 01:21

Character是什么意思啊?

我写成s.isDigit为什么不对?

还有就是我出了写成是Character.isDigit还有没有别的写法啊?

我是个初学者很多东西都不明白,还望赐教!

aipb2007 发表于 2008-4-7 01:31

Character是什么意思啊?
[color=Red]char的包装器类型,也就是对象[/color]

我写成s.isDigit为什么不对?
[color=Red]你要查看这个方法是怎么用,不能想当然,类库是比人这样设计的[/color]

还有就是我出了写成是Character.isDigit还有没有别的写法啊?
[color=Red]有,就是你写的那样,判断一个字符在AscII中的位置,不过你那个compareTo是比较字符串的[/color]

我是个初学者很多东西都不明白,还望赐教
[color=Red]你最好去下载一个jdk文档,不懂的方法,需要的方法就查阅,编程就是这样,人是记不住那么多的[/color]


[color=Red]加油,我也算个java初学者。睡觉了,晚安。[/color]

freish 发表于 2008-4-7 16:44

[quote][bo]以下是引用 [un]xiaolaba3330[/un] 在 2008-4-7 01:21 的发言:[/bo]

Character是什么意思啊?

我写成s.isDigit为什么不对?

还有就是我出了写成是Character.isDigit还有没有别的写法啊?

我是个初学者很多东西都不明白,还望赐教! ... [/quote]
查查API就知道了
像Character的isDigit是静态方法,并且是是带参数的
不能想当然的使用

要写程序边看API

页: [1]

编程论坛