刷题必备:java常用函数

常用包

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();

注意

  1. java中if的判断条件类型必须是bool型,与c和c++不同。
  2. java的字符串判断相等不能用==
  3. java中的char是16位的,采用Unicode编码。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值