这里写目录标题
最近刷算法题,总用到String的一些方法
比如:
- 可以用String进行进制之间的转换
- 可以将输入的String字符串,转为char[]数组,然后再进行其他处理
- 用String进行字符串直接的拼接
等等
进制转换
十进制转n进制 :
int x;
Integer.String(x,n);
n进制转十进制 :
String x;
Integer.parseInt("x",n);
//toString方法--->十进制转n进制
//十进制转三进制
String x = Integer.toString(19,3);
System.out.println(x);
int a = 18;
//十进制 转 二进制
String binary = Integer.toBinaryString(a); //output:10010
//十进制 转 八进制
String octal = Integer.toOctalString(a); //output:22
//十进制 转 十六进制
String hex = Integer.toHexString(a); //output:12
//二进制 转 十进制
String c = "10010";
int b = Integer.parseInt(c,2);
//八 转 十
int o = Integer.parseInt("22",8);
//十六 转 十
int h = Integer.parseInt("12",16);
1.String 转数组
一维 char[] c = string.toCharArray();
String s = "osjfeojsi";
char[] c = s.toCharArray();
for(int i=0;i<c.length;i++) {
System.out.print(c[i]+" "); //output : o s j f e o j s i
}
二维 c[i] = scan.next().toCharArray();
char[][] c = new char[2][10];
for (int i = 0; i < c.length; i++) {
String input = scan.next();
c[i] = input.toCharArray();
}
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 10; j++) {
System.out.print(c[i][j]);
}
System.out.println();
}
2.字符拼接 String 和 StringBuilder
String 的拼接:
String a = "fhies";
String b = "howefi";
System.out.print(a+b); //output : fhieshowefi
StringBuilder拼接 : StringBuilder.append();
- 例题 : 蓝桥—>鸡哥的奇特密码
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String s = scan.next();
StringBuilder sb = new StringBuilder();
boolean t = false;//表示L还未被装进StringBuilder
for(int i=0;i<s.length();i++) {
if(s.charAt(i) == 'L' && t == false) {
sb.append('L');
t = true;
}
if(s.charAt(i) == 'Q') {
sb.append('Q');
t = false;
}
}
System.out.println(sb);
}
}
按照字典序排列
重写list中的compare
- lamada表达式写法
list.sort((a,b)->(a+b).compareTo(b+a));
- 完整写法
list.sort(new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
// TODO Auto-generated method stub
return (o1+o2).compareTo(o2+o1);
}
});
例题
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
List<String> list = new ArrayList<>();
int n = scan.nextInt();
for(int i=0;i<n;i++) {
String s = scan.next();
list.add(s);
}
list.sort(new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
// TODO Auto-generated method stub
return (o1+o2).compareTo(o2+o1);
}
});
for(int i=0;i<list.size();i++) {
System.out.print(list.get(i));
}
}
}