黑马程序员技术交流社区

标题: 20天14课值转换问题 [打印本页]

作者: 黑马-李勇    时间: 2012-6-14 00:34
标题: 20天14课值转换问题
import java.io.*;
import java.util.*;
class RunCount
{
        public static void main(String[] args) throws IOException
        {
                Properties prop=new Properties();
                File file=new File("count.ini");//file单独封装是为了下面的判断
                if(!file.exists())
                        file.createNewFile();//判断文件不存在则建立文件
                FileInputStream fis=new FileInputStream(file);//流与文件关联
                prop.load(fis);//将输入流中的键值对信息存入Properties中
                int count=0;//计数器
                String value=prop.getProperty("time");//获取time键对应的值信息
                if(value!=null)
                {
                        count=Integer.parseInt(value);//?为什么不写成count=(int)value;
                        if(count>5)//大于5次退出程序
                        {
                                System.out.println("使用次数已到");
                                return;
                        }
                }
                count++;//计数器加1
                prop.setProperty("time",count+"");//将值写入集合中
                FileOutputStream fos=new FileOutputStream(file);//写入输出流
                prop.store(fos,"");//写入文件
                fos.close();//关闭输出流
                fis.close();//关闭输入流
        }
}
作者: 王晓新    时间: 2012-6-14 00:48
因为String的范围比int要大,所以强制类型转换是不行的


作者: 吴小东    时间: 2012-6-14 00:54
字符串类型转整型,不能直接强转的,而且一个是基本数据类型,一个引用数据类型
字符串转整型就要用到Integer.paseInt(String str);
同样还有转成其他类型的方法 Double.parseDouble(String str)   Float.parseFloat(String str) 等等

作者: 李盼    时间: 2012-6-14 09:00
  count=Integer.parseInt(value);//?为什么不写成count=(int)value;
当然不能直接转了,count是int型,value是字符串,一个是对象,一个是基本数据类型,应该用Integer的parseInt方法将字符串参数作为有符号的十进制整数进行解析。
然后赋值给count,这个时候有一个Integer类型自动拆包为int型的过程!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2