Java实验1:Java编程基础

输入和输出是计算机最基本的功能,Java也提供了多种方式完成输入输出,本篇主要分享最基础,最常用的。

输入(Scanner类)

Scanner 是 Java5 的新特征,在java.util包里,可以完成用户输入,使用如下:

1. 导入java.util包;

2. 构造Scanner对象,参数为标准输入流http://System.in

3. 使用next()方法系列接收数据;常用方法如下:

  • String nextLine()

接收输入的一行内容(以回车作为分隔符)

  • String next()

接收输入的一个单词(以空格作为分隔符)

  • int nextInt()
  • double nextDouble()

接收输入的一个整数或浮点数

  • boolean hasNext()

检测是否还有单词输入

  • boolean hasNextInt()
  • boolean hasNextDouble()

检测输入中是否整数或浮点数

package BaseCode;
import java.util.Scanner; //导入Scanner的包
public class code2_0 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);//构建一个Scanner对象
        System.out.print("输入数据:");
        String s1 = sc.next(); // 接收一个单词,空格分隔
        System.out.println("接收的单词s1:"+s1);

        String s2 = sc.nextLine(); // 接收一行字符串
        System.out.println("接收的一行字符串s2:"+s2);

        System.out.print("输入整数:");
        if (sc.hasNextInt()) {// 判断输入的是否是整数
            int i = sc.nextInt(); // 接收整数
            System.out.println("整数数据i:" + i);
        }
        else {// 如果输入的不是整数
            System.out.println("输入的不是整数!");
        }

        System.out.print("输入小数:");
        if (sc.hasNextDouble()) {// 判断输入的是否是小数
            Double f = sc.nextDouble(); // 接收小数
            System.out.println("小数数据f:" + f);
        }
        else {
            System.out.println("输入的不是小数!");
        }
        sc.close(); //关闭Scanner对象
    }
}

运行结果

输入数据:This is Java code
接收的单词s1:This
接收的一行字符串s2:is Java code
输入整数:23
整数数据i:23
输入小数:12.36
小数数据f:12.36

几点说明:

1. next()不接收带空格的字符串,输入字符串前面的空格next()会去掉,后面的空格作为分隔符或者结束符。

2. 当输入多个数据时,第一个next()接收到数据,下一个next()发现字节流里面有东西,就不会阻塞等待输入了,会直接接收。

  • 如上例中,输入“This is Java code” ,s1用next()只接受一个单词“This”,s2用nextLine()接收了剩余的部分。

3. 要输入 int 或 float /double类型的数据,最好先使用 hasNextXxx() 方法进行验证

4. Scanner对象用完最后用close()关闭掉,不然会告警。

输出(print,println,printf)

System.out.print():是最常用的输出语句,它会把括号里的内容转换成字符串输出到输出窗口(控制台)。

System.out.println():与print()基本一样,区别就是输出完成后执行换行。

System.out.printf():这个方法延续了C语言的输出方式,通过格式化文本和参数列表输出。

重点说一下printf(),这个方法能按照我们的需求进行格式化的输出,如输出要控制小数的位数、数字前补0、输出对齐、加分隔符等等。

基本格式:两个参数,第一个是格式控制符,第二个可变长,表示待输出数据对象。

System.out.printf(“格式控制”,表达式1,表达式2,……,表达式n)

每个格式控制以%开始,后跟被格式化的数值类型,如:%d表示int型。输出时每个格式控制都用后面相应位置的表达式值替换。

两个部分说明:

1. 常用的格式控制符(字符数值类):

package BaseCode;
public class code2_1 {
    public static void main(String[] args) {
         String name="时光与字节"; 
         int nl=18; 
         double cj=98.675; 
         System.out.printf("字符串:%s;%n数字:%d;%n小数(默认六位):%f",name,nl,cj);

         System.out.printf("%n整数留五列不足前面添零:%05d",nl);
         System.out.printf("%n小数点后留两位:%.2f",cj);

         System.out.printf("%n整数八进制输出:%o",nl);
         System.out.printf("%n小数共6列,小数点后1位:%06.1f",cj);

         System.out.printf("%n前加正号、千位分隔符:%+,.2f",36521.254);
    }
}

运行结果

字符串:时光与字节;
数字:18;
小数(默认六位):98.675000
整数留五列不足前面添零:00018
小数点后留两位:98.68
整数八进制输出:22
小数共6列,小数点后1位:0098.7
前加正号、千位分隔符:+36,521.25

2. 时间日期类格式化输出

%t表示格式化日期时间类型,%T是时间日期的大写形式,在%t之后用特定的字母表示不同的输出格式 。下表只列出常用的日期类控制符。

package BaseCode;
import java.util.*;
public class code2_2 {
    public static void main(String[] args) {
        System.out.printf("%tF\n",new Date());
        System.out.printf("%tT\n",new Date());
        System.out.printf("%tr\n",new Date());
        System.out.printf("%tY\n",new Date());
        System.out.printf("%ty\n",new Date());
        System.out.printf("%tm\n",new Date());
        System.out.printf("%td\n",new Date());
        System.out.printf("%ta\n",new Date());

        System.out.printf("今天是:%1$ty年%1$tm月%1$td日,%2$s", new Date(),"J_ZHANG");
        //%后是数字是后面被格式化的数值索引,从1开始,以$结束。
        //如:new Date()是第一个,索引为1。
    }
}

运行结果

2019-10-07
21:47:38
09:47:38 下午
2019
19
10
07
星期一
今天是:19年10月07日,J_ZHANG

实验内容:

a.编写一个java应用程序PrintLetters.java,输出俄文字母表。

提示:俄文的第一个字符是’а',最后一个字符是:’я’

public class Russia {
    public static void main(String args[]){
        char A='а',B='я';
        System.out.println("打印俄文字母表:\n");
        for(int i=(int)A;i<=(int)B;i++){
            System.out.print(" "+(char)i);
        }
    }
}

b.编写一个程序,使用while循环计算1~1000之间能被3和7同时整除的整数之和。

public class Sum {
    public static void main(String args[]){
        int sum=0;
        for(int i=1;i<=1000;i++){
            if(i%3==0&&i%7==0){
                sum+=i;
            }
        }
        System.out.print(sum);
    }
}

c.编写一个程序,使用for循环计算8+88+888+8888+…的前十项之和。

public class Sum {
    public static void main(String args[]){
        int sum=0,temp=0;
        for(int i=0;i<10;i++){
            temp=temp*10+8;
            sum+=temp;
        }
        System.out.print(sum);
    }
}

d.通过键盘输入(java.util.Scanner),声明并初始化一个圆柱体的高和底面半径,PI值是Math.PI,显示输出圆柱体的体积。

import java.util.Scanner;

public class Volume {
    public static void main(String args[]){
        double R=0,H=0,V=0;
        Scanner reader=new Scanner(System.in);
                H=reader.nextDouble();
                R=reader.nextDouble();
                V=2*Math.PI*R*H;
                System.out.print(V);
    }
}
import java.util.Scanner;//就是导入 java.util 包下的 Scanner 类,导入后才能使用它。
public class d {
    public static void main(String[] argn){
        double r,h,pi,volume;
        Scanner input=new Scanner(System.in);
        System.out.println("请输入圆柱的高和半径:");
        if(input.hasNextDouble()){//在键盘中依次输入若干个数字,每输入一个数字都需要按回车键确认,最后在键盘输入一个非数字字符串结束整个输入操作过程。
            h=input.nextDouble();
            r=input.nextDouble();
            pi=Math.PI;
            volume=pi*h*r*r;
            System.out.println("圆柱的体积是:"+volume);
        }
        else {
            System.out.println("如如不匹配,请输入数字");
        }
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值