| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3134 人关注过本帖
标题:求助关于JOptionPane.showInputDialog的问题
取消只看楼主 加入收藏
woainvzu
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2008-10-5
收藏
 问题点数:0 回复次数:5 
求助关于JOptionPane.showInputDialog的问题
各位大虾,小女乃java初学者,有个问题困扰了很久,还是不知道该怎么办,所以来求助各位大虾,希望不吝赐教~

问题是这样的,我把用JOptionPane.showInputDialog得到的字符串赋给了str,然后,我想拆分开每一个字符,比如说,我输入了12345,
这时,我就想得到:
str[0]=1;
str[1]=2;
str[2]=3;
.
.
.


最开始,我想的方法是将str用Integer.parseInt(str)转成int型的i,然后用i分别%10,100,1000,10000...
但是,这个方法有个弊端,首先,如果我不确定我输入的数字到底是多少,那还需要加一个判断,到底要%多少个10的N次方,
其次,如果我输入的是abcdefg,这个方法岂不是就不能实行~
最后,我觉得,既然是一个string型的,为什么要转成int型,在转成char型,所以,我觉得,应该其他的方法来转化~

不知道是什么~
请各位走过路过不要错过的大虾帮忙指教指教~
小女感激不敬!

[[it] 本帖最后由 woainvzu 于 2008-10-7 12:29 编辑 [/it]]
搜索更多相关主题的帖子: JOptionPane 
2008-10-05 21:34
woainvzu
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2008-10-5
收藏
得分:0 
主要是这个方法如何实现~

有没有像Integer.parseInt()这样的函数来实现呢?
2008-10-05 22:28
woainvzu
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2008-10-5
收藏
得分:0 
哇塞~
要的就是这样的~~
谢谢各位大虾~!!!
我试试先~
2008-10-06 22:46
woainvzu
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2008-10-5
收藏
得分:0 
哇,真的不错~~
再次感谢各位大侠!!
2008-10-06 23:07
woainvzu
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2008-10-5
收藏
得分:0 
我看了7楼的程序,的确是可以拆分字符串,但是有两个地方不懂。
1.在这一句里:String a[]=s.trim().split("");为什么需要s.trim()。
我查了下,trim是去掉首尾空格的方法,这里为什么要去掉首尾空格。
2.是这一句:char b =s.charAt(0);charAt方法是获取首字母,我不明白为什么要判断是不是第一个来获取首字母。
如果说,使用了split方法后,用循环i=0的时候会莫名其妙的出现a[0]=一个空格。但是如果循环的时候就用i=1开始,便不会在字符串上多一个空格出现。

例如;
public class SplitTest
{    public static void main(String[] args)
    {  
   String str = " 1 2 3 ";
   // 在每个空格字符处进行分解。
   String[] str2 = str.split("");
   System.out.println("\n原字符串的长度为:"+str.length());
   for(int i=0; i<str2.length; i++)
        System.out.println("str2["+i+"] = "+str2[i]);
    }
}

运行结果是:
原字符串的长度为:7
str2[0] =
str2[1] =  
str2[2] = 1
str2[3] =  
str2[4] = 2
str2[5] =  
str2[6] = 3
str2[7] =  

在1前明明只有一个空格,但是会莫名其妙的多一个,但是如果设置了for循环的i从1开始,即:

public class SplitTest
{    public static void main(String[] args)
    {  
   String str = " 1 2 3 ";
   // 在每个空格字符处进行分解。
   String[] str2 = str.split("");
   System.out.println("\n原字符串的长度为:"+str.length());
   for(int i=1; i<str2.length; i++)
        System.out.println("str2["+i+"] = "+str2[i]);
    }
}
运行结果是:
原字符串的长度为:7
str2[1] =  
str2[2] = 1
str2[3] =  
str2[4] = 2
str2[5] =  
str2[6] = 3
str2[7] =  
就正确了

[[it] 本帖最后由 woainvzu 于 2008-10-7 12:26 编辑 [/it]]
2008-10-07 11:35
woainvzu
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2008-10-5
收藏
得分:0 
我刚又试了下,用charAt也可以实现拆分String

public class charAtTest
{
    public static void main(String[] args)
    {
        String str = " 1 2 3 4 ";
        int a=str.length();
        System.out.println("\n原字符串的长度为:"+a);
        char s[] = new char[a];   
        for(int i=0; i<a; i++)
        {
            s[i] = str.charAt(i);  
            System.out.println("s["+i+"] = "+s[i]);
        }
    }
}

运行结果为:
原字符串的长度为:9
s[0] =  
s[1] = 1
s[2] =  
s[3] = 2
s[4] =  
s[5] = 3
s[6] =  
s[7] = 4
s[8] =
2008-10-07 12:23
快速回复:求助关于JOptionPane.showInputDialog的问题
数据加载中...
 
   



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

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