String类的相关方法:
1.整型数转化为制定长度的字符串,不足为数前面补零
String.format(String format,Object args)
具体使用如:
String.format("%06",123)//其中6转换后字符串的长度,123为要转换的整数,返回结果为String型
输出结果000123
2.int \char等基本数据类型转换为String
int a; String s = Integer.toString(a); char a; String s = Character.toString(a);3.replaceAll()方法的使用:
String source = "AAaaBBa"; source.replaceAll("a","G") ;运行结果为AAGGbbG 其中"a"是要替换的字符,“G”是替换字符
String source = "AAaaBBa";
String change = "a"; source.replaceAll("(?i)"+change,"G");运行结果为GGGGBBG 其中“(?i)”表示对大小写不敏感
String source = "AAaaBBa"; String oldString = "a"; String newString = "G"; Matcher m = Pattern.compile(oldString, Pattern.CASE_INSENSITIVE).matcher(source);//大小写敏感,即区分大小写 System.out.println(m.replaceAll(newString)); Matcher m1 = Pattern.compile(oldString, Pattern.CANON_EQ).matcher(source);//CANON_EQ:canonical equivalence(规范相等性)即严格的相等也即是区分大小写 System.out.println(m1.replaceAll(newString));运行结果:
String s = "aaaaaabbbbcccc"; s = s.replaceAll("(?s)(.)(?=.*\\1)" , ""); System.out.println(s);运行结果:abc
BigInteger类的一些方法:
1.BigInteger转换为二进制
BigInteger n = scanner.nextBigInteger(); String s = n.toString(2);其中可以更改为其他数字,表示要转换为的进制数
Scanner输入的一些问题
1.char型是Scanner不能输入的。解决方式为:char a = (char)System.in.read();
其中System.in.read();返回值为int类型,也就是说将控制台输入的字符转换为其的Ascall(0-255)值后输出,只能检测一个字符。
如输入ab时,输出结果为97(a的Ascall码)
2.
Scanner scanner = new Scanner(System.in); int a = scanner.nextInt(); String s = scanner.nextLine(); System.out.println("a:"+a+" s:"+s);如果输入的是3 4(3 4之间有一个空格)则输出结果是a:3 s: 4(注意此时4前面有一个空格也作为输出)
如果输入的是3然后回车,则输出的是a:3 s:(此时s是一个行分隔符)
注:scanner.nextLine()方法扫描的是当前行的起始位置到换行截止(注意这里的起始位置指的是上一个类型扫描结束后的第一个位置,对于上例而言就是在扫描3之后的空格就
是起始位置终止在回车)。换行不输出。输入3之后换行,实际上扫描到的字符是\r\n,但是因为回车\n不输出从而s="\r"(输出时即换行)。
实际上相当于nextLine()吃进了回车\n不作为输出。
final关键字的使用
final 关键字可修饰类、成员变量、方法
1.final修饰类时,表示这个类不可以被继承如String和Math类
2.final修饰成员变量时,表示这个变量是常量。一旦初始化后,将不能被修改。如果final修饰的是引用型变量则此变量不可以改变,不能再指向其他对象。但可以修改此变量的属性值。
3.final修饰方法时,表示这个方法不能在子类中被重写。