日期:2014-05-20  浏览次数:20663 次

两个小代码疑问
(1)
double d="1234.5";
String ds1,ds2="12345.6789";
Double D2;
ds1=Double.toString(d);
D2=Double.parseDouble(ds2);


 这代码有没问题? 如ds1=Double.toString(d); 为什么是Double.toString 而不是String.toString? 



(2)

public class Array123
{
  public static void main(String args[]) throws java.io.IOException
  {
  int data1[];
  data1 = new int[10];
  System.out.println("please intput 10 datas:");
  for(int i=0;i<10;i++)
  data1[i] = (char)System.in.read(); //为什么是(char),而不是(int),data1 不是int 型数组吗?
  System.out.println("The data of the array is:");
  for(int i=0;i<10;i++)
  Syatem.out.println("data1[i]"+(char)data1[i]);
  }
}







------解决方案--------------------
这代码有没问题? 如ds1=Double.toString(d); 为什么是Double.toString 而不是String.toString?
这没有问题。另外String.toString不是一个静态方法。
应该是String.valueOf(double),这个方法实现与Double.toString是一样的。查看一下内部的源码就明白了。

char和int是可以自动转型的,所以哪里没有问题。实际上read会返回int。
------解决方案--------------------
第一个问题Double.toString()是一个静态方法,能将double型的数据,解释为string类型
第二个问题:你用int也正常运行的 
你只需要保证最后一句Syatem.out.println("data1[i]"+(char)data1[i]);
而不是Syatem.out.println("data1[i]"+data1[i]);这是就会输出ASCII码对应的字符
否则会输出整数
------解决方案--------------------
第一个问题:代码没问题。Double.toString(double d)是Double类里的一个静态方法,这个方法作用是返回 double 参数的字符串表示形式。String类也有toString方法~~作用是返回字符串本身。
第二个问题:你写成int也没有问题,这个方法的返回值本身就是int类型的
------解决方案--------------------
Double.toString , 将一个double类转换成String,当然是Double的方法了,String也有String.valueOf();你可以看看

------解决方案--------------------
1 double d="1234.5";