Java的输入和输出:
输入:
import java.util.Scanner
Scanner s = new Scanner(System.in);
//通过new Scanner(System.in)创建一个Scanner对象,控制台会一直等待输入,直到敲回车键结束,把所输入的内容传给Scanner,作为扫描对象。要获取输入的内容,则只需要调用Scanner的nextLine()或nextInt()或nextdouble()等方法。
String name=s.nextLine();//读取一个字符串输入,直到回车换行
int age=s.nextInt();//或者读取一个int型整数
如:
读取一个字符串输入。
import java.util.Scanner;
public class test {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
String name=s.nextLine();
System.out.println(name);
System.out.print("\n");
System.out.print(name);
}
}
读取一个整数输入。
import java.util.Scanner;
public class test {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int age=s.nextInt();
System.out.println(age);
System.out.print("\n");
System.out.print(age);
}
}
输出:
System.out.println();//输出并换行
System.out.print();//输出但不换行
System.out.printf();//格式化输出
如:
public class test {
public static void main(String[] args) {
System.out.println("hello"+"你好");
System.out.print("你好我不想换行");
System.out.print("前面不换行所以我跟着上一句");
System.out.println();
double pai=3.1415926;
System.out.printf("pai=%7.2f",pai);
}
}
运行截图如下:
if...else if...else判断:
这和C语言中基本一样。
如:
import java.util.Scanner;
public class test {
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
int n=s.nextInt();
if(n>60)
System.out.println("n>60");
else if(n>80)
System.out.println("n>80");
else
System.out.println("其他情况");
}
}
运行截图如下:
注意:
在Java中,浮点数判断相等时,用==判断是不靠谱的。我们可以利用Math.abs(x-0.1)<0.00001这样小于某个临界值即算作相等来判断。
如:
public class test {
public static void main(String[] args) {
double x=1-0.000009/10;
if(Math.abs(x-1)<0.00001)
System.out.println("x等于1");
}
}
如果是引用类型的变量,如字符串变量,==符号判断的是其是否指向同一个字符串对象,而要判断字符串的内容是否相等,要使用equals()函数。
如:
public class test {
public static void main(String[] args) {
String s1="ABC";
String s2="ABC";
String s3=s1;
if(s1.equals(s2))
System.out.println("s1等于s2");
if(s1==s3)
System.out.println("s1与s3指向同一个字符串对象");
}
}
如果变量为null,则调用equals()会报错。我们可以通过短路运算符&&来避免这种情况。
如:
public class test {
public static void main(String[] args) {
String s1=null;
String s2="ABC";
if(s1!=null&&s1.equals(s2))
System.out.println("s1等于s2");
}
}
swtich语句、while循环、do while循环、for循环、break语句、continue语句均与C语言中类似。
注意:
要想在ecliipse中避免遗漏switch中的break语句,可点击window->preferences->java->complier->Errors/Warnings,switch case fall-through和switch is missing default case全部选为warning。
Java中打印数组:
由于数组变量是引用类型,直接打印数组变量得到的是变量名的地址,要打印数组元素,我们可以用for循环或使用Arrays.toString()方法。
如:
import java.util.Arrays;
public class test {
public static void main(String[] args) {
int[] ns= {1,2,3,4,5,8};
System.out.println(ns);
System.out.println(Arrays.toString(ns));
}
}
Java中数组排序:
冒泡排序:
import java.util.Arrays;
public class test {
public static void main(String[] args) {
int[] ns= {28,12,89,73,65,18,96,50,8,36};
for(int i=0;i<ns.length;i++) {
for(int j=i;j<ns.length-1;j++) {
if(ns[j]>ns[j+1]) {
int temp=ns[j];
ns[j]=ns[j+1];
ns[j+1]=temp;
}
}
}
System.out.println(Arrays.toString(ns));
}
}
运行截图如下:
使用Arrays.sort()方法,该方法对于元素多的数组进行快速排序,对于元素少的数组进行冒泡排序。
import java.util.Arrays;
public class test {
public static void main(String[] args) {
int[] ns= {28,12,89,73,65,18,96,50,8,36};
Arrays.sort(ns);
System.out.println(Arrays.toString(ns));
}
}
运行截图如下:
注意:
上述两种方法都修改了数组本身的元素引用。
查看函数方法的源码:
在eclipse中快速查看Java中某个函数或方法的源码:按住CTRL键,点击方法名如sort,就可以打开其方法的源码文件。
如果没有的话,点击Attach Source,JDK的源码一般位于JDK所在文件夹中的src.zip中。
这个方法适用于IDEA、Pycharm。
命令行参数:
命令行函数是一个String[]数组,args为数组变量名,我们可以向这个数组中传入任意数量的参数变量名。命令行参数由JVM虚拟机接收用户的输入并传给Main()方法。
比如我们可以在cmd中javac 文件名.java编译某个.java文件,然后输入java 文件名 -s -t -version。
-s -t -version均为传入的参数。检测这些传入的参数变量名,在Main函数中可设置if判断来执行一些操作。
我们还可以在eclipse中选择Main.java,选择run->run configurations,在Arguments中填写我们要传入的参数变量名。
如:
public class test {
public static void main(String[] args) {
System.out.println(args.length);
for(String arg:args)
System.out.println(arg);
}
}
运行截图如下: