Java的简单输入输出问题

最近正在学Java,了解了一些Java的输入输出的基本语法。。。

1.在Java中如何输入以空格隔开的数字呢?
由于一开始输入的数据都是被当成字符串来处理的,所以我们就相当于处理一个字符串,来获得所需要的数据。
可以用scanner()方法来进行输入,具体如下:

import java.util.Scanner;//导入Scanner类
public class Main {
public static void main(String[] args) throws IOException {
        //得到一个扫描器,用来扫描系统输入
        Scanner input=new Scanner(System.in);
        //申明一个临时的字符串变量temp,用来保存读入的数据
        String temp=input.nextLine();//input.nextline()是指读入当前的一行以换行结束
        //trim()表示去掉temp两边的空白
        //split(" ")用空格切割字符串,返回一个字符串数组
        String[] ss=temp.trim().split(" ");
        //从两个字符串中解析得到两个数字
        int num1=Integer.parseInt(ss[0]);//将字符串转换为整型数据
        int num2=Integer.parseInt(ss[1]);
        System.out.println(num1);
        System.out.println(num2);
        input.close();//重要的事情,用完记得关闭扫描器
    }
}

运行结果如下:
这里写图片描述

2.输入一串包含非数字字符时怎么提取数字?例如输入”x=11,y=3”,时,要得到11和3,具体如下:

import java.util.Scanner;//导入Scanner类
public class Main {
public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        String temp = input.nextLine();//接受一行数据以换行或空格结束
        String[] ss = temp.trim().split(",");
        String s1 = ss[0];
        String s2 = ss[1];
        int i;
        String str1="";//用于保存第一个数
        for(i=0;i<s1.length();i++) {
            if(s1.charAt(i)>='0' && s1.charAt(i)<='9') {//当遇到数字字符,追加到str1中
                str1+=s1.charAt(i);
            }
        }
        //将字符串转换为整型数据
        int num1 = Integer.parseInt(str1);
        String str2="";//保存第二个数
        for(i=0;i<s2.length();i++) {
            if(s2.charAt(i)>='0' && s2.charAt(i)<='9') {
                str2+=s2.charAt(i);
            }
        }
        int num2 = Integer.parseInt(str2);
        System.out.println("x="+num1);//输出
        System.out.println("y="+num2);
        input.close();
       }
   }

运行结果如下:

这里写图片描述

3.在C语言中,我们可以用”%”来控制输出的格式、精度,那么用Java输出浮点数时怎么控制精度呢?
可以用String.format()方法来解决,具体如下:

import java.util.Scanner;//导入Scanner类
public class Main {
        public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        String temp=input.nextLine();
        String[] ss=temp.trim().split(" ");
        double num=Integer.parseInt(ss[0]);
        double area=GetArea(num);//求圆面积函数,自己写的。。
        System.out.print("Area:");
        //String.format()四舍五入控制精度的输出
        System.out.println(String.format("%.3f",area));//保留三位小数
         input.close();
    }
}

运行结果如下:

这里写图片描述

4.在输出浮点数时怎么能不输出无意义的0呢?我一开始想的是利用String.format()方法,像C语言中那样用”%g”来输出,后来发现行不通,目前没有想到简单的方法,只好用过循环来解决,具体如下:

import java.util.Scanner;
public class Main {
        public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        String temp = input.nextLine();
        String[] ss = temp.trim().split(" ");
        double num1 = Double.parseDouble(ss[0]);// 字符串转化为浮点数
        double num2 = Double.parseDouble(ss[1]);
        double num3 = Double.parseDouble(ss[2]);
        double x = num1*num2*num3;//求三个数的乘积
        String s = String.format("%f", x);// 将浮点数转化为字符串
        int i;
        //从最后开始循环,去掉多余的0
        for (i = s.length() - 1; i >= 0; i--) {
            if (s.charAt(i) == '0' && s.charAt(i - 1) == '.') {
                i--;
                break;
            } else {
                if (s.charAt(i) == '0' && s.charAt(i - 1) != '0') {
                    break;
                } else if (s.charAt(i) != '0') {
                    i++;
                    break;
                }
            }
        }
        System.out.println(s);//输出原来的数字
        System.out.println(s.substring(0, i));// 输出从0到i的字符
        input.close();
    }
}

运行结果如下:

这里写图片描述

都是一些简单基础的小知识,以后还要继续努力呀~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值