Java new a()_java问题

59f62c0d5424d7f73adddf37ae9ca1dc.png

2011-01-03

JAVA初学者问题2import

修改了程序(猜想程序本意是要随机获取会员号),给出Demo,可运行看下:import java。util。ArrayList;import java。util。Arrays;import java。 util。HashMap;import java。util。List;import java。util。Map;import java。util。Scanner;public class Chapter03_1 {static Scanner input = new Scanner( );public static void main(String[] args) {in...全部

修改了程序(猜想程序本意是要随机获取会员号),给出Demo,可运行看下:import java。util。ArrayList;import java。util。Arrays;import java。

util。HashMap;import java。util。List;import java。util。Map;import java。util。Scanner;public class Chapter03_1 {static Scanner input = new Scanner( );public static void main(String[] args) { intln("我行我素购物系统 > 幸运抽奖"); int("请输入所有会员号(不同会员号请用\",\"分隔,会员号是4位长度的整数,如:7756,7757,7758):\n");String userIDs = xt();List userIDList = getUserIDList(userIDs);getLuckyGuy(userIDList, 10);// intln("测试接受char,请输入一个字符:");//try{//char a = nextChar();// intln("输入字符是: " + a);//}catch(Exception e){// intln("输入字符错误!");//}}/** * 解析输入的会员号 * @param userIDs * @return */private static List getUserIDList(String userIDs){if(null == userIDs || im()。

equals(""))return new ArrayList();return List( im()。split(","));}/** * 产生幸运客户 * @param userIDList * @param seed */private static void getLuckyGuy(List userIDList, int seed){if(null == userIDList || ze() == 0) return;Map usersMap = new HashMap();for(String userID : userIDList){if(null != userID && !""。

equals( im())){int lucyNumber = ( lueOf(userID)%1000)/100;//注意userID如果不是整数会产生异常usersMap。

put(lucyNumber, userID);}}while(true){int randomNumber = (int)(Math。random() * seed);if( ySet()。

contains(randomNumber)){ int("恭喜您! 会员 '" + t(randomNumber) + "' 是幸运客户,获得精美跑车一辆(玩具车)!\n"); intln("感谢其他客户的参与!");break;}}}/** * 获取一个字符 * @return */public static char nextChar(){String result = xt();if(result。

length() > 1){throw new IllegalArgumentException(result + " is not a char!");}return arAt(0);}}问题 1 答: int("恭喜您!\t"+suiJishu+"\t是幸运客户,获得精美跑车一辆(玩具车)!"); 这行代码输出的是suiJishu,不是huiYuanhao。

问题 2答:Math。random()产生的是一个带正号的 double 值,该值大于等于 0。0 且小于 1。0。Math。random()*10产生的也是个 double 值,该值大于等于 0。

0 且小于 10。0。(int)(Math。random()*10)前面的 (int) 是做强制类型转换,把 double 转换成 int ,此处会发生信息丢失,在 int 取值范围内只丢失小数部分。

问题 3 答:Scanner类是一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器,没有提供返回char类型的方法。因为Scanner是final类,不可以去继承,可以自定义一个方法来扩展:public static char nextChar(){String result = xt();if(result。

length() > 1){throw new IllegalArgumentException(result + " is not a char!");}return arAt(0);}运行测试请把上面Demo中的注释代码行恢复即可。

在java语言中要理解char类型,需要了解Unicode字符集,char类型用UTF-16编码描述一个代码单元,是2个字节长不带符号的Unicode字符。还要了解的是字符(char)和字符串(String)的区别;两个char型运算时,自动转换为int型;建议全面学习下java的8种基本类型。

收起

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值