JAVA刷题方法整理

一、String--->String[]

利用String.split()实现 注:在使用String.split 方法分隔字符串时,分隔符如果用到一些特殊字符,可能会得不到我们预期的结果, <pre>例如 |,,+等,需要变为 \|,\,\+才可以。</pre>

1
2
String str = new String("abcedfg");
String[] arr = str.split("");

利用String.toCharArray()实现

1
2
String str = new String("abcedfghig");
char[] chr = str.toCharArray();

二、String[] ---> String

1
2
3
4
5
6
7
借助StringBuffer类的append(),String本身不具备此方法
String[] str = new String[]{"abc","123","78"};
StringBuffer sb = new StringBuffer();

for(int i = 0;i<str.length;i++){
sb.append(str[i]);
}

三、char[] ---> String

1
2
3
   通过char.toString()
char[] chr = new char[]{'a','b','c'};
chr.toString();

1
2
3
通过String.valueOf()
char[] chr = new char[]{'a','b','c'};
String.valueOf(chr);

四、处理末位带空格的情况

针对末位带空格,通过StringBuffer或者StringBuilder来实现存储,并能够进行多次修改 通过StringBuffer实例.substring(0,StringBuffer实例.length()-1)实现将末位空格去除,再统一输出

五、其他类型转String

直接调用String.valueOf()进行转换 也使用可以使用int+"";转成字符串 通过String.chatAt()获取下标元素 通过String.substring()截取i之后的元素 通过String.split("")分隔字符串得到数组

六、String--->int

String a = Integer.valueOf(b); String a = Integer.ParseInt(b);

七、char-->String

String str = String.valueOf(char)

八、自定义排序

1
2
3
4
5
6
7
8
9
Arrays.sort(point,0, n, new Comparator<Point>() {
@Override
public int compare(Point o1, Point o2) {
if (o1.x - o2.x == 0) {
return (int) (o1.y - o2.y);
}
return (int) (o1.x - o2.x);
}
});

九、for each 输出

1
2
3
4
for (Point i:point
) {
System.out.println(i.x + "," + i.y);
}

十、大数阶乘

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import java.math.BigInteger;
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner inputScanner=new Scanner(System.in);
while(inputScanner.hasNext())
{
int n=inputScanner.nextInt();
BigInteger m;
m=BigInteger.valueOf(1);//将m定义成大数的1
for(int i=1;i<=n;i++)
{
m=m.multiply(BigInteger.valueOf(i));//大数乘法
}
System.out.println(m);
}
}
}

十一、大数加、减、乘、除、取余

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//定义:
BigDemical bg = new BigDemical(int)
BigDemical bg = new BigDemical(String)
//加:
jia = bg.add(new BigDemical(1))
//减:
jian = bg.subtract(new BigDemical(1))
//乘:
cheng = bg.multiply(new BigDemical(1))
//除:
chu = bg.divide(new BigDemical(1))
//取余
yu = bg.divideAndRemainder(new BigDemical(2))
//返回一个数组:商yu[0] 余数yu[1]

十二、Java Character 类

Character 类用于对单个字符进行操作。 Character 类在对象中包装一个基本类型 char 的值

十三、模运算

a&1 等价于 a%2 == 0 a>>=1 等价于 a/=2

十四、next()与nextLine()

next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法会将输入的空格键、Tab键或Enter键等视为分隔符或结束符,所以next方法不能得到带空格的字符串。 而nextLine()方法的结束符只是Enter键,即nextLine()方法返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。 要注意的是在每一个 next()、nextDouble() 、 nextFloat()、nextInt() 等语句之后如果还有一个nextLine(),需要再加一个nextLine()语句,将next()之后Enter结束符过滤掉,否则nextLine()会读取到Enter,而不能继续读取数据。