java-为什么我要输出任意的大写字母,却还是会有第64位置的@出现

问题描述

为什么我要输出任意的大写字母,却还是会有第64位置的@出现

public class Exercise16 {

public static void main(String[] args) {
    int a = (int) (Math.random() * 27 + 63);
    System.out.println(a);
    char b = (char) a;
    System.out.println(b);

}

}

解决方案

 int a = (int) (Math.random() * 27 + 64);

Math.random()产生一个0~1的整数,因为<1所以取整只能得到0~26,可以取到0

解决方案二:

Math.random()是取0.0到1.0之间的伪随机数,也就是说有可能取到0。或者一个乘以27小于1的数,自然取到ascii码是63或是64的值了,只是取0的概率
比较小,不然你可以看到“>”

解决方案三:

有两点要说明:1.math产生的随机数,是0~1包前不包后,这种现象在API中很常见。依你所写,取值就是63<=a<90。63改成65,27改成26,就好。2.优化,字符可作为int型数据参与运算。把65改成字符A,提高阅读性。

解决方案四:

在连续整数中取得一个随机数
值 = Math.floor(Math.random() * 可能值的总数 + 第一个可能的值)

int a = (int) (Math.random() * 26 + 65);

时间: 2024-09-19 08:55:24

java-为什么我要输出任意的大写字母,却还是会有第64位置的@出现的相关文章

在Unix/Linux上令(java)JVM支持中文输出

unix|中文 原文: 在Unix/Linux上令(java)JVM支持中文输出 一.在Unix/Linux上令JVM支持中文输出 如果用户使用的是UNIX的远程服务器,就会遇到中文字体在图像中输出的问题,特别是由于许多管理员并不喜欢把主机的locale定为zh(因为意味着可能出乱码或必须装微形图形终端象zhcon,但很多情况下这样的条件并不具备).大部分程序员的JAVA经验苟限于JSP脚本程序,部分熟练的程序员大概开发过中间件.servlet.applet或在WINDOWS上运行的GUI程序.

关于java 快速排序问题 这个输出报错 我认为 while 有问题 求大神指导

问题描述 关于java 快速排序问题 这个输出报错 我认为 while 有问题 求大神指导 package QuickSort; import java.util.ArrayList; public class QuickSort { public static void main(String[] args) { ArrayList<Integer> lists = new ArrayList<Integer>(); lists.add(5); lists.add(2); lis

代码-java进行金字塔形数组输出

问题描述 java进行金字塔形数组输出 我想实现一个从控制台读取行数,然后进行循环输出的金字塔的代码 输出的结果如下所示: 00000001 000000212 0000032123 00004321234 000543212345 0065432123456 07654321234567 零为防止缩进了我的空格 解决方案 public static void main(String[] args){ Scanner sc = new Scanner(System.in); int a = sc

java数组的倒序输出。

问题描述 java数组的倒序输出. 使其变为 a ba cba dcba ---- 怎么才可以做到呢?用for循环可以么? 解决方案 /* package whatever; // don't place package name! */ import java.util.*; import java.lang.*; import java.io.*; /* Name of the class has to be "Main" only if the class is public.

java servlet可以循环输出多个outputstream吗?

问题描述 java servlet可以循环输出多个outputstream吗? 最近做即时通讯,要在openfire上开发插件保存离线文件.我的思路是客户端登陆后向服务器提交GET请求,然后服务器通过OutputStream将文件输出.由于可能有多个离线文件,所以我打算循环输出多个outputstream.但是客户端得到的只是第一个OutputStream.请问怎么解决?服务器端代码: protected void doGet(HttpServletRequest req HttpServlet

java代码:为什么输出结果是false?

问题描述 java代码:为什么输出结果是false? 控制台输入:asdf,为什么结果是false?求Scanner的具体解释 public class StringTest { public static void main(String[] args) { Scanner scan=new Scanner(System.in); String s1="asdf"; String s2=scan.next(); System.out.println(s1==s2); } } 解决方案

java中如何将输出的结果写入到文件和显示在屏幕

问题描述 java中如何将输出的结果写入到文件和显示在屏幕 有一个1-50的数组,每次随即不重复抽取7个数,取7次,将这49个数写入到文件,剩下那个数显示在屏幕,程序应该怎么写,求大神赐教 解决方案 import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.uti

协作-java多线程的协调输出结果不符合预期

问题描述 java多线程的协调输出结果不符合预期 java新手,拜托看一下下面很简单的多线程协调,就是要求学生交一个作业,老师改一个作业,用一个flag来实现,不知道为什么输出只有一对, 代码如下: package 线程二; import static java.lang.System.out; import java.util.LinkedList; class JobCollection{ LinkedList jobList=new LinkedList(); boolean flag=f

对象-Java中关于String输出

问题描述 Java中关于String输出 我有点搞不懂什么时候输出了对象地址,什么时候才输出了对象的值 解决方案 关键看你输出对象的类中对toString方法有没有进行重载,重载成什么样,默认没有重载就是输出object的toString方法,就是hashcode.也就是自己对类的toString进行重写,输出你想要的格式. 解决方案二: 一楼正解.toString本质上是多态,调用实际对象的该方法.默认Object类中的toString是数出对象地址的. 解决方案三: 地址好像是没法输出的,不