文章目录
常用包
import java.util.Scanner;
import java.util.Map;
import java.util.Collection;
import java.lang.Math;
①输入输出
输入字符串
import java.util.Scanner;
Scanner input=new Scanner(System.in);
String s1=input.next();
输入数字
int contents=input.nextInt();
if(input.hasNext()){
int a=input.nextInt();
}
文件读写
try (BufferedReader in=new BufferedReader(new InputStreamReader(new FileInputStream("地址")))){
while((line=in.readLine())!=null){
System.out.println(line);
}
}
catch(Exception ex){
ex.printStackTrace();
}
try (BufferedReader bw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream("地址")))){
bw.write("test"+" ");
bw.newLine();
}
catch(Exception ex){
ex.printStackTrace();
}
②字符串(String)
长度
a.length();
//输出strs[]个数
strs.length;
//数组是a.length(没有括号)
遍历
for(int i=0;i<s.length();i++){
s.charAt(i);
}
String转int
要保留前置0。
int a= Integer.parseInt(str);
其他类型转String
String s = String.valueOf(value);
Substring
括号内为索引值,左闭右开。
s1=s.substring(0,5);
检查输入是否符合格式
比较好的方法是利用正则表达式
String pattern="^(\\d{17})([0-9]|x)$";
if(s.matcher.(pattern)){
}
访问某个位置字符
s.charAt(index);
查找某个字符串
String s="adsff gdgs";
int a2=s.indexOf("asdf");//若没有,返回-1
字符串是否相等
注意不能用==
if(a.equals(b))
分割字符串
String[] b=a.split(" ");
//按照空格分割
替换
a.replace("1","a");//将1替换为a
去除头尾空格
a=a.trim();
③数组(Array)
初始化
int[] a=new int[10];
int[][] a=new int[10][10];
fill(a,100)//所有元素赋值为100
排序
Arrays.sort(a):
填充
//将数组a填充为100
Arrays.fill(a,100);
④动态数组(ArrayList)
初始化
ArrayList<Integer> a=new ArrayList<Integer>();
Collections.fill(a1,100);
增删
a1.add(1);
a1.add(3,4);//将4插入到第三个位置
a1.remove(3);//删除下标为3的
遍历
//下标
for(int i=0;i<a.size();i++){
a.get(i);//访问下标为i的
}
//循环
for(int item:a){
;
}
排序
Collections.sort(a1);
Collections.max(a1);//最大值
Collections.min(a1);
翻转
Collections.reverse(a1);
⑤哈希表(HashMap)
初始化
import java.util.HashMap;
HashMap<Integer,Integer> map=new HashMap<>();
插入
map.put(a,b);
查找
if(map.containsKey(k));
if(map.containsvalue(v));
取值
int a=map.get(k);
遍历
Iterator<Integer> it=map.keySet().iterator();
while(it.hasNext()){
Integer key=it.next();
Integer value=map.get(key);
}
keySet
提取其中所有key
for(Integer key:map.keySet()){
...
}
⑥集合(HashSet)
初始化
Set<Character> s= new HashSet<Character>();
插入
s.add(a);
删除
s.remove(a);
查询
s.contains(a);
移除
s.remove(a);
清除
s.clear();
⑦Stack
初始化
Stack<Integer> s=new Stack<Integer>();
插入和弹出
s.push(1);
//弹出的同时返回弹出的栈顶值
s.pop();
empty
s.empty():
访问栈顶
s.peek();
⑨Queue
不允许添加null元素。
初始化
Queue<Integer> q=new Queue<Integer>();
插入和弹出
q.offer(1);
// 弹出的同时返回值
q.poll();
访问
q.peek();
注意
- java中if的判断条件类型必须是bool型,与c和c++不同。
- java的字符串判断相等不能用
==
。 - java中的char是16位的,采用Unicode编码。