long型与字符串之间的转化问题

Zero2One 2006-11-08 09:32:57
String s = "12345";
Long l = Long.parseLong(s);

System.out.println(l);

在这里输出12345。这没问题。可是看下面这个程序:
import java.util.StringTokenizer;

import javax.swing.JOptionPane;

public class Test_stringTokenizer1 {

public static void main(String[] args) {
// 输入格式 格式如下(123) 456-7890
String s = JOptionPane.showInputDialog("请输入一个电话号码");
StringTokenizer tokens = new StringTokenizer(s, "() -");

String[] str = new String[tokens.countTokens()];

int i = 0;
while (tokens.hasMoreTokens())
str[i++] = tokens.nextToken();

int num;
num = Integer.parseInt(str[0]);

double phnum;
phnum = Long.parseLong(str[1]+str[2]);

System.out.println("区号是 :"+num+"\n" +"电话号码是 :"+phnum);
}
}

这里的输出结果怎么都要加个.0呢?
请高人回答!!!
...全文
349 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
艾榕 2006-11-08
  • 打赏
  • 举报
回复
int num;
num = Integer.parseInt(str[0]);
//下面改动

long phnum;
phnum = Long.parseLong(str[1]+str[2]);
String str = phnum.toString();

System.out.println("区号是 :"+num+"\n" +"电话号码是 :"+phnum);

--------------------------------------
另外还有,建议不要使用StringTokenizer来分割字符串,这个好象在j2se 2.0中已经逐渐没落了,具体你可以查一下javadoc 文档,这里建议使用String.Split(...)来分割字符串,有几个参数自己查doc文档,记不太清了,好象是Split(char[],String),char[]中存放的是分割符,例如(),- 之类,String就是要分割的字符串了
allright_flash 2006-11-08
  • 打赏
  • 举报
回复
long value=1;
String str = Long.toString(value);
Zero2One 2006-11-08
  • 打赏
  • 举报
回复
谢谢两位,我搞错。昏死!!!
ok,可以结贴了。本来是long 型的,这个地方竟然搞错鸟。哎,真不认真啊~~~~
allright_flash 2006-11-08
  • 打赏
  • 举报
回复
String str = Long.toString(l);
mouse819 2006-11-08
  • 打赏
  • 举报
回复
为什么要把long赋给一个double呢?
直接使用long型不行么?long的值范围也不小啊~
laoxing521 2006-11-08
  • 打赏
  • 举报
回复
int num 应该不会加.0

double phnum会加的,因为它是double型,转化的时候 即使没有数据位也会输出小数位
把phnum转化int试试

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧