Java程序设计 翁恺
零、准备阶段
1.新建工程Project文件
2.新建类Class文件
勾选 public static void main
选项
一、输入输出流
输入流
import java.util.Scanner;
Scanner in = new Scanner(System.in);
String str1 = in.nextLine();
String str2 = in.next();
int a = in.nextInt();
nextLine()
相当于gets
,允许空格输入,next()
相当于scanf("%s")
,不允许空格输入
输出流
println
输出一行,以回车结尾
print
输出一段内容
System.out.print(string);
System.out.println(string);
System.out.println(in.nextLine());
System.out.println(in.nextInt());//通过改变方法指定读入数据类型
printf可附带格式控制符
System.out.printf(format, variable1, variable2...);
String类型允许用+进行连接,如:
System.out.println("echo: " + in.nextLine());
二、变量
Java是一种强类型语言,所有变量使用之前必须定义或声明。
Java变量在使用前必须初始化,否则抛出异常Unresolved compilation problem
Java在赋值时若出现值与变量类型不匹配且无法进行隐式类型转换,会抛出异常Type mismatch
。
常量定义用final
,如
final int Wt = 120;
三、分支
if( Expression )
{
Statement1;
...
}
else if(Expression2)
{
Statement2;
...
}
else
{
Statement3;
...
}
四、循环
while( Expression )
{
Statements;
...
}
for( Exp1; Exp2; Exp3)
{
Statements;
...
}
五、数组
int[] numbers = new int[100];
int[] numbers = new int[x];
数组大小可以是数字,也可以是变量
每个数组含有一个成员对象length
,表示数组大小
for(int i=0; i<grade.length; i++)
{
System.out.print(grade[i]+" ");
}
使用new
申请的数组会被初始为0,也可以手动赋初始值
int[] arr1 = new int[5];
int[] arr2 = {1, 2, 3, 4, 5};
java允许用for-each形式遍历访问数组元素
for( DataType Variable : Array )
{
Statements;
...
}
for(int k: numbers)
{
if(k==src)
{
found = True;
break;
}
}
六、跳转
//筛选素数
int[] primes = new int[50];
int tail;
MAIN_LOOP:
for(int x=3; tail<50; ++x)
{
for(int i=0; i<cnt; ++i)
{
if(x%i == 0)
continue MAIN_LOOP;
}
primes[tail++] = x; //若x不是素数,此句被跳过
}
for(int k: primes)
{
System.out.print(k+" ");
}
七、字符
java的char类型使用UNICODE编码,支持中文等多种文字,通常以\u0041
形式出现,长度为2Byte
逃逸字符(转义字符)
编码 | 意义 |
---|---|
\b | 回退一格 |
\t | 到下一个表格位 |
\n | 换行 |
\r | 回车 |
\" | 双引号 |
\' | 单引号 |
\\ | 反斜杠 |
八、包裹类型
基础类型 | 包裹类型 |
---|---|
boolean | Boolean |
char | Character |
int | Integer |
double | Double |
包裹类型可以用于声明变量,声明的变量也可与基础类型变量互相赋值
int a = 5;
Integer b = 7;
b = a;
包裹类型内有成员变量MAX_VALUE和MIN_VALUE
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE);
Character类型方法
方法 | 描述 |
---|---|
isLetter() | 是否是一个字母 |
isDigit() | 是否是一个数字字符 |
isWhitespace() | 是否是一个空白字符 |
isUpperCase() | 是否是大写字母 |
isLowerCase() | 是否是小写字母 |
toUpperCase() | 指定字母的大写形式 |
toLowerCase() | 指定字母的小写形式 |
toString() | 返回字符的字符串形式,字符串的长度仅为1 |
九、Math类
System.out.println("90 度的正弦值:" + Math.sin(Math.PI/2));
System.out.println("0度的余弦值:" + Math.cos(0));
System.out.println("60度的正切值:" + Math.tan(Math.PI/3));
System.out.println("1的反正切值: " + Math.atan(1));
System.out.println("π/2的角度值:" + Math.toDegrees(Math.PI/2));
System.out.println(Math.PI);
方法 | 作用 |
---|---|
abs() | 取参数绝对值 |
round() | 四舍五入到整数 |
pow() | 返回参数1的参数2次方 |
sqrt() | 对参数开平方 |
十、字符串String类
String str1 = new String("a string");
Scanner in = new Scanner(System.in);
String str2;
str2 = in.nextLine();
System.out.println(str2);
equals(str)
用于判断字符串对象的内容是否与str相等
System.out.println(str2.equals("bye"));
方法 | 作用 |
---|---|
equals() | 判断字符串对象内容是否与参数相等 |
compareTo() | 以字典序判断两字符串大小 |
length() | 字符串长度 |
charAt(pos) | 返回字符串第pos个字符 |
substring() | 返回字符串的子串 |
indexOf() | 寻找字符所在位置 |
startWith() | 判断字符串是否以参数开头 |
endWith() | 判断字符串是否以参数结尾 |
trim() | 去除两端空格 |
replace(c1, c2) | 将所有c1字符替换为c2字符 |
toLowerCase() | 将所有字母变为小写 |
toUpperCase() | 将所有字母变为大写 |
// compareTo()
System.out.println(str1.compareTo(str2));
// substring()
System.out.println(str1.substring(begin));
System.out.println(str1.substring(begin, end));
// indexOf()
System.out.println(str1.indexOf(char));
System.out.println(str1.indexOf(char, begin));
System.out.println(str1.indexOf(substring));
System.out.println(str1.lastIndexOf(char));//反向遍历
十一、函数
定义函数
```java
public static void isPrime(int x)
{
Statements;
...
}