字符串截取
指定位置截取
先来介绍最常用的一种
1、通过subString()方法来进行字符串截取,返回字符串中的子字符串,在java中有两种用法
第一种,传递一个参数:
publicStringsubstring(int beginIndex)//该子字符串从指定索引处的字符开始,直到此字符串末尾。12
第二种,传递两个参数:
publicStringsubstring(int beginIndex,int endIndex)//从指定的 beginIndex 处开始,直到索引 endIndex - 1 处的字符。因此,该子字符串的长度为 endIndex-beginIndex。12
//参数说明:beginIndex – 起始索引(包括)、endIndex – 结束索引(不包括)。
字符串替换,Java中的replace()函数
函数原型:replace(CharSequence target, CharSequence replacement) 用replacement替换掉target。这两个参数都是字符串
很巧妙的计数用法,通过替换指定字符,在比对前后的长度,获取指定字符个数
类似删除,但java没有指定删除方法,
字符串排序
自然排序方法
.toCharArray()转换为数组
Arrays.sort(arr);使用sort函数,实现字母,数字的自然顺序排序
回转string
- 建立新的StringBuffer类型字符串,
- 通过循环append数组内的元素
- sb.tostring()转为string字符串
String[] arr = { "123", "abc" };
StringBuffer sb = new StringBuffer();
for (int i = 0; i < arr.length; i++) {
sb.append(arr[i]); // String并不拥有append方法,所以借助 StringBuffer
}
String sb1 = sb.toString();
System.out.println(sb1); // 输出123abc
StringBuilder
StringBuilder与String转换
StringBuilder转String
直接通过toString()方法即可
StringBuilder sb=new StringBuilder("abc");
String sb1=sb.toString();
StringBuilder,可随时加长,add方法
StringBuilder sb = new StringBuilder(“hello”);
sb.append(“word”);
字符串
字符串检测包含字符/串
.contains(“”);
检测字符首次出现位置
要求是StringBuilder类型
E就是要检测的字符串
indexof() 是返回某个指定的字符串值在字符串中首次出现的位置,
如果要检索的字符串值没有出现,则该方法返回 -1。
sb.indexOf("E")
扩展用法-检测到某个字符停止
如果一直没出现过,那么使用indexof()检测就会一直是-1
如果不是-1那么就证明出现了,也可以操作了
while (sb.indexOf("E") == -1);
字符串转换
int数组转为字符串类型
toStringMethod(i);
}
private static void toStringMethod(int[] arr)
{
// 自定义一个字符缓冲区,
StringBuilder sb = new StringBuilder();
sb.append("[ ");
//遍历int数组,并将int数组中的元素转换成字符串储存到字符缓冲区中去
for(int i=0;i
{
if(i!=arr.length-1)
sb.append(arr[i]+" ,");
else
sb.append(arr[i]+" ]");
}
System.out.println(sb);
}
}
string类型转int类型
使用Integer.parseInt(string)
String empId1 = "1001";
int intEmpId1 = Integer.parseInt(empId1);
System.out.println(intEmpId1);
Output :
1001
使用Integer.valueof(string)
String empId2 = "2001";
Integer integerEmpId2 = Integer.valueOf(empId2);
System.out.println(integerEmpId2);
Output :
2001
字符串与数组的相互转换
字符串转换为数组
1)Java String 类中的 toCharArray() 方法将字符串转换为字符数组,具体代码如下所示。
String str = "123abc";
char[] arr = str.toCharArray(); // char数组
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]); // 输出1 2 3 a b c
}
2)Java.lang 包中有 String.split() 方法,Java 中通常用 split() 分割字符串,返回的是一个数组。
String str = "123abc";
String[] arr = str.split("");
for (int i = 0; i < arr.length; i++) { // String数组
System.out.print(arr[i]); // 输出 1 2 3 a b c
使用 split() 方法注意如下:
如果用“.”或“|”作为分隔的话,必须是如下写法,String.split("\.")或 String.split("\|"),这样才能正确的分隔开,不能用 String.split(".") 或
String.split("|")。
如果在一个字符串中有多个分隔符,可以用“|”作为连字符,如“acount=? and uu =? or n=?”,把三个都分隔出来,可以用String.split(“and|or”);
如果想在串中使用“”字符,则也需要转义。首先要表达“aaaa\bbbb”这个串就应该用"aaaa\bbbb”,这样分隔才能得到正确结果。
3)如果要返回 byte 数组就直接使用 getBytes 方法就可以了。
String str = "123abc" ;
byte [] arr = str.getBytes();
4)使用 StringUtils 中的 join 函数,使用前需先引入 common-lang3 的 jar 包,可去 apache 官网下载,代码如下所示。
StringUtils.join(null) = null;
StringUtils.join([]) = "";
StringUtils.join([null])= "";
StringUtils.join(["a", "b", "c"]) = "abc";
StringUtils.join([null, "", "a"]) = "a";
String[] str = { "1", "2", "a", "b" };
// 将数组变成字符串
StringUtils.join(str);
// 将数组用逗号分隔变成字符串
StringUtils.join(str, ",");
数组转换为字符串
1)char 字符数组转化为字符串,使用 String.copyValueOf(charArray) 函数实现,具体代码如下所示。
char[] arr = { 'a', 'b', 'c' };
String string = String.copyValueOf(arr);
System.out.println(string); // 输出abc
2)String 字符串数组转化为字符串,代码如下所示。
String[] arr = { "123", "abc" };
StringBuffer sb = new StringBuffer();
for (int i = 0; i < arr.length; i++) {
sb.append(arr[i]); // String并不拥有append方法,所以借助 StringBuffer
}
String sb1 = sb.toString();
System.out.println(sb1); // 输出123abc