new Integer.valueof()返回的是Integer的对象。
Integer.parseInt() 返回的是一个int的值。
new Integer.valueof().intValue();返回的也是一个int的值。
Integer.valueof(String s)是将一个包装类是将一个实际值为数字的变量先转成string型再将它转成Integer型的包装类对象(相当于转成了int的对象)这样转完的对象就具有方法和属性了。
而Integer.parseInt(String s)只是将是数字的字符串转成数字,注意他返回的是int型变量不具备方法和属性。
char a = a.charAt(0)//获取索引为0位置上的字符
list转字符串并添加分隔符:
StringBuffer sb = new StringBuffer();
sb.append(list).append(" ")
转换进制:
Java.lang.Integer.toString(int i,int radix)方法可以实现将一个int类型的10进制的数据 i 转换为指定进制 radix的数据。
x的y次幂:Math.pow(x,y)
将给的数字转成科学记数法bg.toString(),转成普通数字bg.toPlainString()
Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。
import java.math.BigDecimal;
public class BigDecimalDemo {
public static void main(String[] args) {
BigDecimal bg = new BigDecimal("1E11");
System.out.println(bg.toEngineeringString());
System.out.println(bg.toPlainString());
System.out.println(bg.toString());
}
}输出
100E+9
100000000000
1E+11
Collectionos.ncopies(int, T) 方法用于返回一个不可变列表组成的n个拷贝的指定对象。
List list = Collections.nCopies(5, "tuitorial Point");
// create an iterator
Iterator itr = list.iterator();
System.out.println("Values are :");
while (itr.hasNext()){
System.out.println(itr.next());
%.0f 是输出 float 型或 double 型数据,按定点格式,小数点以下占0位。
也就是输出浮点数的整数部分,不输出小数点和小数点以下部分。小数部分 4 舍 5 入。
例如:printf("%.0f %.0f ",123.5,123.4);输出 124 123
%2d, %02d, %d的区别
%d正常输出十进制数,%2d指2位宽的十进制数,右端对齐,超出部分省略;%02d指输出2位十进制数,右端对齐,不够位数的话左端补0.
转换原理:
double类型占据8个字节,int类型只占据4个字节。在计算时,int类型会自动提升为double类型,自动补充4个字节,因此计算后的结果还是double类型。转换规则:
范围小的类型向范围大的类型提升。
byte、short、char‐‐>int‐‐>long‐‐>float‐‐>double
初始化list并赋值
ArrayList list = new ArrayList<>(Arrays.asList("aa", "bb", "cc"));
使用 Arrays.asList 把数据转换为 List 的两个坑:
第一个坑:不能使用 Arrays.asList 来转换基本类型数组,使用会把int数组看做一个整体,size=1
Arrays.asList 方法只能将int装箱为Integer,不可能把int数组装箱为Integer数组。
可以使用java8 以上版本Arrays.stream方法来转换。
int[] arr = {1,2,3};
List list = Arrays.stream(arr).boxed().collect(Collectors.toList());
第二个坑: Arrays.asList 返回的 List 不支持增删操作
BufferReader用法:
public static void main(String[] args) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
close() 关闭流。
mark(int) 标记此流的当前位置。
markSupported() 报告此流是否支持 mark() 实现的操作。
read() 读取单一字符。
read(char[], int, int) 将若干字符读入一个数组中。
readLine() 读取一文本行。
ready() 报告此流是否读就绪。
reset() 将该流复位为最近标记。
skip(long) 跳过若干字符。
Java Map遍历value的6种方法
1. keySet迭代遍历value
Iterator iter = map.keySet().iterator();
while (iter.hasNext()) {
value = map.get(iter.next());
}
2. keySet用for循环遍历value
for (String key : map.keySet()) {
value = map.get(key);
}
3. entrySet迭代遍历value
Iterator> iter = map.entrySet().iterator();
while (iter.hasNext()) {
value = iter.next().getValue();
}
4. entrySet用for循环遍历value
for (Entry entry: map.entrySet()) {
value = entry.getValue();
}
5. values迭代遍历value
Iterator iter = map.values().iterator();
while (iter.hasNext()) {
value = iter.next();
}
6. values用for循环遍历value
for (String value : map.values()) {
}
Java中整数四舍五入Math.round();
小数四舍五入:String.format("%.nf",d)表示保留n位
String.format()的使用(Java字符串格式化)
https://blog.csdn.net/wsc912406860/article/details/82771386
数字前面补0:("04d",99) |0099|
数字前面添加空格:("% 4d",99) | 99|
java中十进制数转其他进制Integer.toUnsignedString(num,jinzhi)
其它进制数转十进制数Long.valueOf(string,16)
java数值转为对应ascll码字符:在数字前加上(char)
两个数组比较是否完全相等:Arrays.equals(str1,str2);
埃氏筛法求素数:先去掉2的倍数,再去掉3的倍数,再去掉4的倍数,……依此类推,最后剩下的就是素数。
public static void isSushu(){
for(int i = 0;i<10000;i++){
a[i] = i+2;
}
for(int i = 2;i<=10000;i++){
for (int j = 0; j < 10000; j++) {
if (a[j]!=0){
if (a[j]%i==0&&a[j]/i!=1){
a[j] = 0;
}
}
}
}
for (int num:a){
if (num!=0){
list.add(num);
}
}
}