java菜鸡入门常用
1,输入输出
注意 sc.next(); //遇到空格结束
sc.nextLine(); //回车结束
while(sc.hasNext()) //多组数组时使用
使用BufferedReader和BufferedWriter实现快速输入输出 //注意
2,数组
二维数组 //注意
a.clone(int [] b) //数组的拷贝
Arrays.copyOf(int[] a, int length);//从a数组的第一个元素开始复制,复制length个元素。
3,String的比较:
== //两个字符串地址是否相等
equals //比较两个字符串对象的内容
String的遍历
String s1 = "123456";
char[] s2 = s1.toCharArray();
StringBuffer sb=new StringBuffer(Integer.toString(a)); //输入的是字符串
StringBuilder sb=new StringBuilder(“ ”);
4,大数
BigInteger a;
BigDecimal b;
a.valueOf( ) //里面的数不能超过 long类型
加法减法乘法 调用方法
求最大公因数。a.gcd(b) 求最大值最小值 a.min(b) a.max(b) 比较compareTo
5,进制转换
补零方案:
public class Main {
public static void main(String[] args) {
int a = 1;
System.out.printf(“%04d\n”, a);
//. 运行结果: 0001 (使用printf几乎完全兼容C语言输出格式,适合刷OJ用)
String str= String.format("%04d",a);
System.out.println(str);
}
integer。to进制 //十进制转为其他进制
Integer.toString(100, r); 一个r进制字符串
Integer.parseInt(s,16) //s是字符串 以十进制输出
Integer.parseInt(String.valueOf(s.charAt(i)))
包装类.valuof()
包装类.toString()
总结一下:
在java中,有字符串(某一进制数)转某一确定进制数,
Integer.parseInteger(String str, radix num);
如果是 num = Integer.parseinteger(1010)
那么num=1010,因为无radix时默认为10进制;
6,输出要求:保留小数
pritf(“%.3f”,sum)//保留三位小数 不是四舍五入
a = a.setScale(4,BigDecimal.ROUND_HALF_UP);//四舍五入保留四位小数
DecimalFormat df=new DecimalFormat(“0.00”); //不是四舍五入
String.format(“%04d”,a); //前面补零
7,查数
=1; //新符号,先右移一位 对于字符数组可以使用
8,math方法的常调用的方法
最大值math.max
最小值math.min
求平方根math.sqrt
求绝对值math.abs
求幂math.pow(a,b) //a^b
取整math.ceili //向上取整(更多) 例如:1.3 结果为2.0
math.floor //向下取整 例如:1.6 结果为1.0
math.round //四舍五入
随机数math.random() //生成 [0,1)之间的的double类型的数
所以为了得到一个[1, b] 之间的整数可以这样做:
int a = (int)(Math.random()*b + 1); // [1, b]
如果要得到[a, b]的一个整数则是:
int a = (int)(Math.random()*(b - a + 1) + a) // + 1 是因为random()最大取不到1,所以上限取整后就会少1.
9,字符串:
charAt(int i);//返回索引i处的字符
length();//返回此字符串的长度
isEmpty();//判空 当length()为0时返回true
toCharArray();//返回此字符串的字符数组
比较
结果是 整数,负数,0 //可判断大小
compareTo(String anotherString)//按字典顺序比较两个字符串
compareToIgnoreCase(String anotherString)//按字典顺序且不区分大小写比较两个字符串
结果为 true false
equals(String anotherString)//判断两个字符串是否相等,相等返回true否则返回false
equalsIgnoreCase(String str)//同上,不区分大小写。
查找字符串(没有返回-1 返回int)
数字
indexOf(int ch);// 返回指定字符在此字符串中第一次出现的索引
indexOf(int ch, int fromindex); // 同上, 从指定索引开始搜索
字符
indexOf(String str);//返回子串在此字符串中第一次出现的索引
indexOf(String str, int fromindex);同上,从指定索引开始搜索
lastIndexOf(int ch);//返回指定字符在此字符串最后一次出现的索引
lastIndexOf(int ch, int fromindex);//同上, 从指定索引开始搜索
lastIndexOf(String str);//返回子串在此字符串最后一次出现的索引
lastIndexOf(String str, int fromindex);//同上, 从指定索引开始搜索
startsWith(String prefix);// 检查是否以某一前缀开始 ,布尔boolean
字符串拆分
s.split(" ") //空格分割
提取子字符串
substring(int beginIndex, int endIndex);
子串的替换
replaceAll(String s1,String s2);//用s2替换目标字符串中出现的所有s1
replaceFirst(String s1,String s2);//用s2替换目标字符串中出现的第一个s1
转换大小写
toUpperCase(); //将此字符串中的所有字母都换为大写
toLowerCase() //将此字符串中的所有字母都换为小写
将其他类型的数据转化为字符串(重要)
valueOf(char[] data);//返回 char数组的字符串表示形式
valueOf(char[] data,int offset, int count)//返回 char 数组参数的特定子数组的字符串表示形式。
valueOf(int i);//返回 int 参数的字符串表示形式。
StringBuilder(******重要)
遍历
charAt(int i);// 返回索引i位置的字符
length();//返回此字符串的长度
增加(***常用)
append(String str);//在此字符串追加str。
append(StringBuilder str);//在此字符串追加str。
append(char[] str, int offset, int len);//将char的子数组追加到此字符串
删除
delete(int start, int end);//移除此序列从start到end-1的字符串
deleteCharAt(int index);//移除指定索引上的char
修改
setCharAt(int index, char ch);//将指定索引处的字符替换为ch
查找
indexOf(String str);//返回子字符串第一次出现的索引
indexOf(String str, int fromIndex);//同上,从指定位置查找
lastIndexOf(String str);//返回子字符串最后一次出现的索引
lastIndexOf(String str, int fromIndex);//同上,从指定位置查找
字符串反转(***常用)
reverse();//将此字符串反转
字符串截取
substring(int start);//返回此字符串从start开始至length-1结束的String
substring(int start, int end);//返回此字符串从start开始至end-1结束的String
toString();//返回此序列中的String表示形式。
(注意以上方法的返回值都是String而不是StringBuilder)
10,(日历)正好java中的Date类和Calendar类提供了对日期处理的一些方法 date类已过时 calendar类现在用
方法:YEAR 指示年的 get 和 set 的字段数字。
MONTH 指示月份的 get 和 set 的字段数字。
DAY_OF_MONTH get 和 set 的字段数字, 指示一个月中的某天。
DAY_OF_WEEK get 和 set 的字段数字, 指示一个星期中的某天。
DAY_OF_YEAR get 和 set 的字段数字, 指示当前年中的天数。
DAY_OF_WEEK_IN_MONTH get 和 set 的字段数字, 指示当前月中的第几个星期。
HOUR get 和 set 的字段数字,指示当天中的某小时
MINUTE get 和 set 的字段数字,指示当前小时中的某分钟
SECOND get 和 set 的字段数字,指示当前分钟中的某秒
time 以毫秒为单位,表示自格林威治标准时间 1970 年 1月 1 日 0:00:00 后经过的时间。
(字段就是Calendar类的成员变量,用于存储当前日历的年月日等时间信息。)
————————————————
设置特定日期
set(int field, int value);//第一个参数是日期字段,诸如YEAR、MONTH 等将给定的日历字段设置为给定值。
set(int year, int month, int date)// 设置日历字段年月日的值
Calendar类的实例化
getInstance();//返回一个默认时区和语言环境的日历
获取当前Calender实例的字段信息
get(int field);// 获取给定字段的值
例子:
Calendar calendar = Calendar.getInstance();
// 设置日期为: 2020.1.21
calendar.set(Calendar.YEAR, 2020);
calendar.set(Calendar.MONTH, 0);
calendar.set(Calendar.DAY_OF_MONTH, 21);
// 获取2020.1.21是星期几
System.out.print(calendar.get(Calendar.DAY_OF_WEEK));
输出:
3 // 3代表星期二