java机试常见的输入输出格式问题

将基本数据型态转换成 String

用到 String.valueOf() 这个参数多载的方法
有下列几种

  • String.valueOf(boolean b) : 将 boolean 变量 b 转换成字符串
  • String.valueOf(char c) : 将 char 变量 c 转换成字符串
  • String.valueOf(char[] data) : 将 char 数组 data 转换成字符串
  • String.valueOf(char[] data, int offset, int count) :将 char 数组 data 中 由 data[offset] 开始取 count 个元素 转换成字符串
  • String.valueOf(double d) : 将 double 变量 d 转换成字符串
  • String.valueOf(float f) : 将 float 变量 f 转换成字符串
  • String.valueOf(int i) : 将 int 变量 i 转换成字符串
  • String.valueOf(long l) : 将 long 变量 l 转换成字符串
  • String.valueOf(Object obj) : 将 obj 对象转换成 字符串, 等于 obj.toString()
    如:
int i = 10;
String str = String.valueOf(i);
//这时候 str 就会是 "10"

将String 转换成 数字的基本数据型态

大多需要使用基本数据型态的包装类别

  • byte :
    Byte.parseByte(String s) : 将 s 转换成 byte
    Byte.parseByte(String s, int radix) : 以 radix 为基底 将 s 转换为 byte
    比如说: Byte.parseByte(“11”, 16) 会得到 17(即16进制的:1×16^0 + 1×16^1
    这一类的方法如果无法将 s 分析 则会丢出 NumberFormatException
  • double :
    Double.parseDouble(String s) : 将 s 转换成 double
  • float :
    Double.parseFloat(String s) : 将 s 转换成 float
  • int :
    Integer.parseInt(String s) : 将 s 转换成 int
  • long :
    Long.parseLong(String

输入一串以英文逗号隔开的整数,

如3,4,5

        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入一串用英文逗号隔开的整数:");
        //String next():接收键盘输入的内容,并以字符串形式返回
        String input = scanner.next();
        //split():根据匹配给定的正则表达式来拆分此字符串
        String[] string = input.split(",");
        // 定义一个数组,用来存储取出来的string.length个数
        int[] nums = new int[string.length];
        System.out.print("数字转换格式后:");
        for (int i = 0; i < string.length; i++) {
            //将字符串参数作为有符号的十进制整数进行解
            nums[i] = Integer.parseInt(string[i]);
            System.out.print(nums[i] + " ");
        }

输入一串以一个空格隔开的整数,

如3 4 5

Scanner sc = new Scanner(System.in);
String inputString = sc.nextLine();
String stringArray[] = inputString.split(" ");
int num[] = new int[stringArray.length];
for (int i = 0; i < stringArray.length; i++) {
    num[i] = Integer.parseInt(stringArray[i]);
}

录入多个数值,输入0表示录入结束

//方法1
      Scanner scanner = new Scanner(System.in);
      //因为不知道数据个数,无法指定初始化大小,所以不能用int[]
        ArrayList<Integer> input=new ArrayList<>();//动态数组
//       接受多组数据(若当前是0,就不读了)
        while(scanner.hasNext()){
            int tmp=scanner.nextInt();
            if(tmp==0)
                break;
            else {
                input.add(tmp);
            }
        }
//        Integer[] array = input.toArray(new Integer[]{});//转到右边()里new Integer[]{}里,然后用左边的array接住了


//方法2
//        while (true) {
//            System.out.print("请输入数值:");
//            int number = input.nextInt();
//            if (number != 0){
//                array.add(number);
//            }else {
//                break;
//            }
//        }


//方法3
//            while(!sc.hasNext("0")){//当读的数不为0时,就存到n里
//                  int n=sc.nextInt();
//            }

Scanner

https://www.runoob.com/java/java-scanner-class.html

next() 与 nextLine() 区别

next():

  • 阻塞直到读取到有效字符后才可以结束输入。
  • 对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
  • 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
  • next() 不能得到带有空格的字符串。

nextLine():

  • 以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符
  • 可以获得空白
对于runoob com
next方式接收得到:runoob
nextLine方式接收:runoob com

注意

  • 读取前我们一般需要 使用 hasNexthasNextLine 判断是否还有输入的数据。
  • 如果要输入 int 或 float 类型的数据,在输入之前最好先使用 hasNextXxx() 方法进行验证,再使用 nextXxx() 来读取:

参考:Java核心技术·卷1

  • Scanner (InputStream in) 用给定的输入流创建一个Scanner对象。
  • String nextLine( ) 读取输入的下一行内容。
  • String next( ) 读取输入的下一个单词(以空格作为分隔符)。
  • int nextInt()
  • double nextDouble( )读取并转换下一个表示整数或浮点数的字符序列。
  • boolean hasNext()检测输入中是否还有其他单词。
  • boolean hasNextInt()
  • boolean hasNextDouble( )检测是否还有表示整数或浮点数的下一个字符序列。
        System.out.print("输入整数:");
        if (scan.hasNextInt()) {
            // 判断输入的是否是整数
            i = scan.nextInt();
            // 接收整数
            System.out.println("整数数据:" + i);
        } else {
            // 输入错误的信息
            System.out.println("输入的不是整数!");
        }

取整

  1. 四舍五入
  • Math.round(result);( 原数+0.5后四舍五入也可以达到该效果)
    记忆方式:单词round,是“附近”的意思
    返回为long类型
(int)(num * 1.0  +  0.5)  //强转为int,截取掉了小数部分
  1. 取整 :Math.ceil(result)
    记忆方式:单词ceil,是“天花板”的意思
    返回为double类型
 		int num=7;
        int div=2;
        int res=(int)Math.ceil( num*1.0/div ); // 7.0/2=3.5 ==> 4
        System.out.println(res);
  1. 取整
    Math.floor(result);
    记忆方式:单词floor,是“地板”的意思
    返回为double类型

取绝对值

Math.abs()

开平方

Math.sqrt()

生成随机数

Math.random()

平方

double pow(double base, double exponent) 返回第一个参数的第二个参数次方。

正则表达式语法

https://www.runoob.com/java/java-regular-expressions.html

相关链接:

在线编程格式要求
OJ在线编程常见输入输出练习

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值