java和c++还是有好多不同的地方,需要从头开始认认真真地学

输入数字

输入double
import java.util.Scanner;//输入头文件

public class Main {
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        double d=in.nextDouble();
        System.out.println(d);
    }
}

在这里插入图片描述

输入整型
import java.io.*;
import java.util.Scanner;//输入头文件

public class Main {
    public static void main(String args[]) {
        Scanner in = new Scanner(System.in);
        int a = in.nextInt();   //调用in的nextInt函数来读入整型
        int b = in.nextInt();
        System.out.print(a+b+" ");
        System.out.print(a*b+" ");
    }
}

在上面的程序中可以看到一共调用了2次nextInt()函数,所以键盘会等待你输入2个整数。

在这里插入图片描述

如果输入多个整数,它只会取前2个数字。

在这里插入图片描述

注意:in.nextInt() 函数只能接受 int 型,不能输入double或者long等其他类型的数字,否则会报错。

对于其他输入的函数同样,nextDouble(), nextLong(), nextShort(), nextByte(), 都只能输入对应类型的数据,输入其他类型会报错。

输入一个字符

如果你用java做一些比较简单的题,比如说只需要输入一个字符这种,你可能会觉得java里面有nextChar()这个接受单个字符的函数,但事实并不是这样,这样写就会报错。

在这里插入图片描述

正确写法:

import java.io.*;
import java.sql.SQLSyntaxErrorException;
import java.util.*;
import java.util.List;
import java.security.cert.PolicyNode;

public class Main {
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        char ch=in.next().charAt(0);//只输入单独一个字符的代码
        System.out.print(ch);
    }
}

这样输入单个字符的原理就是先用 next() 函数读入接下来输入的字符串,然后再用 charAt() 函数取得字符串中的第一个字符,这样就相当于只输入了一个字符。经过亲自输入证明仅仅只输入一个字符,那输出的就是这个字符,如果输入一个字符串,结果输出的是这个字符串的第一个字符。(请看以下截图)

在这里插入图片描述

在这里插入图片描述


输入字符串

输入字符串时要注意,因为Java是大小写严格的,所以String的S必须大写,虽然C++中string是小写的。

import java.io.*;
import java.util.Scanner;//输入头文件

public class Main {
    public static void main(String args[]) {
        Scanner in=new Scanner(System.in);
        String s=in.nextLine();     //用 in 的 nextLine() 函数读入字符串
        System.out.println(s);
    }
}

运行结果:

在这里插入图片描述

判断2个字符串是否相等

String中有一个函数就是判断是否和另一个字符串相等 equals() ,括号中写入要比较的字符串

import java.io.*;
import java.util.Scanner;//输入头文件

public class Main {
    public static void main(String args[]) {
        Scanner in=new Scanner(System.in);
        String s=in.nextLine();
        if(s.equals("fantastic"))  //使用了字符串的函数 equals() 来判断
            System.out.println("极好的,了不起的");
    }
}

运行结果:

在这里插入图片描述

(每次举例子不知道举什么,突然感觉举单词还不错,还可以加深印象,不错不错,一举两得)

Java的字符串要用""双引号引起来,而不是’'单引号

在Java中用英文下的单引号引起来的是一个字符,而不是字符串。
而且用单引号引起来的只能有一个字符,如果有多个字符,就会报错(只看红色的就可以)

在这里插入图片描述
翻译过来就是:字符字面上有太多字符。
但是如果用双引号引起来多个字符是不会报错的。

判断2个字符是否相等可以用==来判断
在这里插入图片描述

输入一维数组

import java.io.*;
import java.util.Scanner;//输入头文件
import java.util.Arrays; //引入数组类

public class Main {
    public static void main(String args[]) {
        Scanner in=new Scanner(System.in);
        int a[]=new int [6];
        for(int i=0;i<6;++i)
            a[i]=in.nextInt();  //依次输入数据
        Arrays.sort(a);   //用数组的函数对数组排序,从小到大
        System.out.println(a[5]+" "+a[0]);//输出数组的最大值和最小值
    }
}

运行结果:

在这里插入图片描述

输入二维数组

代码:(我个人感觉还是看代码来的快,理解的快,一看就能很明白啊,一大堆解释对我来说不能很好的理解,还是看实例快一些)

import java.io.*;
import java.util.Scanner;//输入头文件
import java.util.Arrays;//引入数组类

public class Main {
    public static void main(String args[]) {
        Scanner in=new Scanner(System.in);
        int n=in.nextInt();//输入行数和列数
        int m=in.nextInt();
        int a[][]=new int[n][m];
        in.nextLine();  //用来读掉回车前的所有字符,不将他们包括在数组的输入中
        for(int i=0;i<a.length;++i){
            for(int j=0;j<a[i].length;++j)
                a[i][j]=in.nextInt();//输入每个元素
        }
        for(int i=0;i<a.length;++i){
            for(int j=0;j<a[i].length;++j)
                System.out.print(a[i][j]+" ");
            System.out.println();
        }
    }
}

看一下运行结果:
2和3分别对应的是n和m,69559是我多输入的,主要是判断in.nextLint()是否可以读掉回车前的所有空格,确实读掉了,69559没有算在数组中的元素。

在这里插入图片描述

如果我们不写 in.nextLint() ,再这样输入,结果如下:

在这里插入图片描述
它没有忽略699559 (这里举的数不一样,但是没关系,道理一样),而最后一个5已经超出二维数组的范围了,所以没有读到。

Java的数组中都有一个 length() 函数,可以直接求出数组中元素的个数,这在C++中是没有的,有这个会方便一些。



输入多组数据

法1:

import java.io.*;
import java.util.Scanner;//输入头文件
import java.util.Arrays;//引入数组类

public class Main {
    public static void main(String args[]) {
        Scanner in=new Scanner(System.in);
        while(in.hasNext()){   //只要一直输入,循环就不会停止
            int a=in.nextInt();
            int b=in.nextInt();
            System.out.println(a+b);
        }
    }
}

处理方法:按 ctrl+D 直接退出循环。(在C++中用while不断输入时是用 ctrl+Z 退出循环)

在这里插入图片描述

如果while中这么写,即使while中是 hanNextInt() ,在循环内部也可以输入Double类型数据(short类型也可以),最后输出的是double类型的数据,强制类型转换了,转换成精度更高的数据类型。

while(in.hasNextInt()){
            int a=in.nextInt();
            double b=in.nextDouble();
            System.out.println(a+b);
        }

在这里插入图片描述

法2:
遇到某个符号结束输入

import java.io.*;
import java.util.Scanner;//输入头文件
import java.util.Arrays;//引入数组类

public class Main {
    public static void main(String args[]) {
        Scanner in=new Scanner(System.in);
        while(!in.hasNext("-1")){  //当输入的第一个数是-1时则退出循环,如果第2个数是-1,不会退出循环
            int a=in.nextInt();
            int b=in.nextInt();
            System.out.println(a+b);
        }
    }
}

在这里插入图片描述



Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐