使用Java在线编程常用且实用的方法

一、字符串处理

1、字符串截取
substring(i);截取下标从i开始所有字符,返回String类型;
substring(i,j);截取下标从i开始到j,但不包含j,返回String类型。测试如下:
使用Java在线编程常用且实用的方法
2、字符串分割
split();括号里填写分隔符,一些分隔符如"."、"["、"]“等分隔时需要转义,即在前面加上”\\ “;若要分割的字符串有多个分隔符则用”|“来连接;返回类型为String类型的数组。测试如下:
使用Java在线编程常用且实用的方法注意:
(1)如果分隔符出现在字符串的首部,结果会怎样呢?来测试一下:
使用Java在线编程常用且实用的方法可以看到,如果分隔符出现在字符串的首部,它将一个空格即” “作为数组的第一个元素。
(2)如果要分割的字符串中有连续的空格(” )或Tab键(" “),若再用空格(” “)作为分隔符,则达不到理想的效果,此时应采用”\\s+"作为分割符,测试如下:
使用Java在线编程常用且实用的方法3、字符串匹配
说到字符串匹配,我们首先想到的是KMP算法,这里不讲解该算法,有兴趣的可以自己去查询资料。这里要介绍的是Java内置的方法-------contains(),笔者猜想该方法的实现基于KMP算法的思想,来看看测试案例:
使用Java在线编程常用且实用的方法该方法返回值为boolean类型,boolean rs = str1.contains(str2);如果字符串str1包含字符串str2,rs = true,否则rs = false
(笔者曾经刷到过字符串匹配的题,那时还不知道Java有这样的函数,笔者就一股脑的把整个KMP算法给实现了,提交过去通过了,感觉很有成就感(写了一大堆代码),当我看了别人提交的代码后,(心里WC,还有这操作),别人就调用了contains方法,几行代码就搞定。)

二、基本类型转换

1、int类型与String类型互转
(1)、int类型转为String类型:
String s = String.valueOf(i);这里i为int类型(其中i可为char、char[]、double、float等基本类型,这里只举例int类型)
String s = Integer.toString(i);这里的i只能为int类型了,应为前面指定了Integer,如果想要其他类型转为String,需修改Integer
(2)、String类型转为int类型:
int i = Integer.valueOf(s);s为String类型
int i = Integer.parseInt(s);s为String类型
2、char类型与String类型
(1)、将整个字符串转为char数组:
char[] c = s.toCharArray();
(2)、将字符串的某个字符转为char:
char cc = s.charAt(i);其中i为字符串s的下标,且i>=0&&i<s.length()
(3)、将char数组转为String
String s = new String(ch);其中ch为char数组
使用Java在线编程常用且实用的方法

三、进制转换

1、十进制转二进制
String s = Integer.toBinaryString(i); i为int类型,与Integer对应
2、十进制转任意进制
String s = Integer.toString(i,x); i为int类型,与Integer对应,x为要转的进制
3、任意进制转十进制
int i = Integer.valueOf(s,x); s为String类型,x表示进制,注意s为必须由x进制表示的字符串
使用Java在线编程常用且实用的方法

四、排序与查找

1、快速排序
Arrays.sort(int[] a); 将数组a升序,调用该方法需导入包,即import java.util.Arrays;
使用Java在线编程常用且实用的方法
2、二分查找
我们知道二分查找要求数组的数必须是有序的。
int index = Arrays.binarySearch(a, key); a为数组,key为要查找的数。如果能查到,则返回key在数组a的下标(从0开始),否则返回一个负数,且这个负数的绝对值为第一个比key大的元素在数组a的下标加1(此时,下标相当于从1开始),如果key大于数组a的所有元素,则这个负数的绝对值为数组a的大小加1。如果key小于数组a的所有元素,则直接返回-1

使用Java在线编程常用且实用的方法