| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 721 人关注过本帖
标题:java自学新手自编的程序,请教下这段程序有什么毛病?
只看楼主 加入收藏
herhei3
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-3-9
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
java自学新手自编的程序,请教下这段程序有什么毛病?
输入任意字符串, 用 逗号 把字符串分解成字符串数组,中间存在多个逗号
示例字符串:  fqkhq,t,2t,y,2y,2y,y,2y,2y2y2y2y,yu54,,   
我一直运行运行不了,但是我一直找不到毛病。。求教,我是才自学2个月的Java菜鸟,写的不好见笑了

package exp2;
import *;
public class Exp9 {
    static int i;
    static String s1;
    static String s2;
    static String s3;
    static String[] s5;   //定义变量S1 S2 S3 S4 S5
    public static void main(String args[]){
    BufferedReader red=new BufferedReader(new InputStreamReader(System.in)); //获得输入缓冲流对象red
    try{
        s1=red.readLine();    //用输入流的readLine()方法读取键盘输入的字符串
    }catch(IOException e){
        System.out.println("输入参数读取错误");
        
    }
   
        s1.trim();   //清楚S1字符串前后的所有空格
        while(s1.indexOf(',')==1)
            s1.substring(2);  //去掉s1字符串开头的','
        if(s1.endsWith(","))
            s1.substring(1,s1.length()-1); //去掉s1字符串最后的','
        while(s1.indexOf(',')>1);{
            s2=s1.substring(1,s1.indexOf(','));//获得s1字符串中第一个','的索引值,把','以及前面的字符串赋给S2数组
            s3.concat(s2);                    //把s2字符串赋给s3
            s1.substring(s1.indexOf(','));//  去掉s1字符串','前面的字符串,返回新的s1
            while(s1.indexOf(',')==1){
                s1=s1.substring(2);        //如果新的s1字符串前面有多个','  则全部去掉
            }      
        }  
        s3.concat(s1);                 //  这样最终获得的S3字符串中将无重复的','
        String[] s5=s3.split(",");     //用 String类的split方法把获得的s3字符串用','分开返回字符数组
        for(i=0;i<s5.length;i++){
            System.out.println(s5[i]);  //输出字符串数组
        }
        
    }
   
}


[ 本帖最后由 herhei3 于 2010-7-31 19:16 编辑 ]
搜索更多相关主题的帖子: java 毛病 自学 
2010-07-31 19:11
hsh_1987
Rank: 5Rank: 5
等 级:职业侠客
威 望:4
帖 子:92
专家分:343
注 册:2010-3-30
收藏
得分:6 
不用这么麻烦吧:
import java.util.Scanner;
public class Exp9 {
    static int i;
    static String s1;
    static String[] s5;   //定义变量S1 S2 S3 S4 S5
    public static void main(String args[]){
        Scanner ac=new Scanner(System.in); //获得输入缓冲流对象red
        s1=ac.next();
        String[] s5=s1.split(",");     //用 String类的split方法把获得的s1字符串用','分开返回字符数组
        for(i=0;i<s5.length;i++){
            System.out.println(s5[i]);  //输出字符串数组
        }   
    }
}

努力很重要,决心比努力更重要...........
2010-08-01 08:50
wtuaimmmm
该用户已被删除
收藏
得分:6 
提示: 作者被禁止或删除 内容自动屏蔽
2010-08-01 19:21
wtuaimmmm
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-08-01 19:26
huxiangwenhu
Rank: 4
等 级:业余侠客
威 望:1
帖 子:191
专家分:262
注 册:2010-6-1
收藏
得分:6 
楼主用的虚拟机编译器可能是1.5以下的,从1.5以后才可以用Scanner标准输入类,所以考虑到楼主的实际情况再综合上面各位的信息,我试着写了一下:
import *;
public class Exp9
{
    static int i;
    static String s1;
    static String[] s5;   //定义变量S1 S2 S3 S4 S5
    public static void main(String args[])
    {
        BufferedReader ac=new BufferedReader(new InputStreamReader(System.in));  //获得输入缓冲流对象red
         try
         {
            s1=ac.readLine();    //用输入流的readLine()方法读取键盘输入的字符串
         }catch(IOException e)
         {
            System.out.println("输入参数读取错误");
         }
         String[] s5=s1.split(",");     //用 String类的split方法把获得的s1字符串用','分开返回字符数组
         for(i=0;i<s5.length;i++)
         {
            System.out.println(s5[i]);  //输出字符串数组
         }   
    }
}

不知道是不是楼主所想的
2010-08-02 21:26
hsh_1987
Rank: 5Rank: 5
等 级:职业侠客
威 望:4
帖 子:92
专家分:343
注 册:2010-3-30
收藏
得分:0 
回复 5楼 huxiangwenhu
你咋知道楼主用1.5的啊?

努力很重要,决心比努力更重要...........
2010-08-03 22:36
huxiangwenhu
Rank: 4
等 级:业余侠客
威 望:1
帖 子:191
专家分:262
注 册:2010-6-1
收藏
得分:0 
回复 6楼 hsh_1987
1.5以上能用Scanner类(包括1.5),难道楼主会选择麻烦的标准输入类BufferedReader吗?
2010-08-04 15:12
快速回复:java自学新手自编的程序,请教下这段程序有什么毛病?
数据加载中...
 
   



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

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