JAVA里面新手的一点问题
前面两个就不写了Stringresult="";for(inti=0;i<6;6++){intintVal=(int)(Math.random()*26+97);resu...
前面两个就不写了
String result="";
for(int i= 0;i<6;6++)
{
int intVal = (int)(Math.random()*26+97);
result=result+(char)intVal;
}
System.out.println(result)
}
}
这一段里就是有点看不懂(Math.random()*26+97) 意思我知道,可我就是不知道为什么是97~127。这个怎么得出来的?
还有result=result+(char)intVal;是不是这个因为把int改成了char,所以数字就变成了字母? 还是上面一句话就已经变成了字母啊?
还没学多久,也是自学,这个书上没讲为什么。以前也没什么基础。 可能问题很白痴,希望大家不吝赐教。 展开
String result="";
for(int i= 0;i<6;6++)
{
int intVal = (int)(Math.random()*26+97);
result=result+(char)intVal;
}
System.out.println(result)
}
}
这一段里就是有点看不懂(Math.random()*26+97) 意思我知道,可我就是不知道为什么是97~127。这个怎么得出来的?
还有result=result+(char)intVal;是不是这个因为把int改成了char,所以数字就变成了字母? 还是上面一句话就已经变成了字母啊?
还没学多久,也是自学,这个书上没讲为什么。以前也没什么基础。 可能问题很白痴,希望大家不吝赐教。 展开
4个回答
展开全部
1.Math.random()*26+97为什么是97~127(其实不是127而是122)
Math.random()的值的范围是0~1(不含1), 0*26+97=97 1*26+97=123 结果97~123(不含123)
2.int值可以和char值进行转换,数据就对应的转成相应的字符
3.你的代码有问题
for(int i= 0;i<6;6++)不是6++而是i++
System.out.println(result)后面少了分号
Math.random()的值的范围是0~1(不含1), 0*26+97=97 1*26+97=123 结果97~123(不含123)
2.int值可以和char值进行转换,数据就对应的转成相应的字符
3.你的代码有问题
for(int i= 0;i<6;6++)不是6++而是i++
System.out.println(result)后面少了分号
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不应该是97~127,应该是97~122吧 Math.random()*26的范围是0~25啊
(char)intVal 是把数字转成对应的字母 应该是ASCII 码的,a-z对应的ascII码是97-122
(char)intVal 是把数字转成对应的字母 应该是ASCII 码的,a-z对应的ascII码是97-122
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我不知道是你粗心还是书上代码有问题,首先for(int i= 0;i<6;6++)
里面应该是i++而不是6++,其他random()方法是在0.0~1.0的范围内的随机数,因此(Math.random()*26+97)的范围是(97,123),还有intVal是整形变量,加(char)是强制转换为字符型变量,因此是intVal整数对应的ASCII值。
里面应该是i++而不是6++,其他random()方法是在0.0~1.0的范围内的随机数,因此(Math.random()*26+97)的范围是(97,123),还有intVal是整形变量,加(char)是强制转换为字符型变量,因此是intVal整数对应的ASCII值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询