欢迎访问宙启技术站
智能推送

Java中常用的字符串等函数使用技巧

发布时间:2023-06-21 04:43:31

Java中字符串是一个常见的数据类型,字符串常用于输入输出、文件操作、网络编程、正则表达式和XML处理等功能。在日常开发中,开发者需要经常使用字符串操作函数来处理字符串,本文将介绍Java中常用的字符串等函数使用技巧。

一、字符串操作符

通过字符串操作符,可以进行字符串数组的拼接、比较、复制、查找和替换等操作。Java语言中常用的字符串操作符为“+”和“+=”。

 1、字符串拼接:

String s1 = "hello";

String s2 = "world";

String s3 = s1 + s2;

字符串s3的值为“helloworld”,其中“+”操作符的作用是将字符串s1和s2拼接在一起。

2、字符串比较:

String s1 = "hello";

String s2 = "hello";

if(s1.equals(s2)){

   System.out.println("s1==s2");

}

此时控制台上输出结果为“s1==s2”,说明s1和s2的内容相同。

3、字符串复制:

String s1 = "hello";

String s2 = s1;

System.out.println("s1="+s1);//输出结果为“s1=hello”

System.out.println("s2="+s2);//输出结果为“s2=hello”

复制操作使用“=”操作符完成,将s1的值复制到s2中。

4、字符串查找:

String s = "hello world";

int index = s.indexOf("world");//返回子字符串"world"在字符串s中 次出现的位置

System.out.println("index="+index);//输出结果为“index=6”

该方法返回子字符串在字符串中 次出现的位置,如果没有找到则返回-1。

5、字符串替换:

String s1 = "hello";

String s2 = s1.replace("e","o");//将字符“e”替换为“o”

System.out.println("s1="+s1);//输出结果为“s1=hello”

System.out.println("s2="+s2);//输出结果为“s2=hollo”

通过replace()方法可以将字符串中指定的字符或者字符串替换为新的字符或者字符串。

二、字符串转换函数

Java语言提供了许多字符串转换函数,常用的转换函数有字符串到整型、字符串到浮点型、字符串到字符型和字符串到字节数组等。

1、字符串到整型:

String s = "123";

int i = Integer.parseInt(s);//将字符串s转换为整型数

System.out.println("i="+i);//输出结果为“i=123”

通过调用Integer类的parseInt()方法可以将字符串转换为整型数,如果转换出错将会抛出NumberFormatException异常。

2、字符串到浮点型:

String s = "3.14";

float f = Float.parseFloat(s);//将字符串s转换为浮点型数

System.out.println("f="+f);//输出结果为“f=3.14”

通过调用Float类的parseFloat()方法可以将字符串转换为浮点型数,如果转换出错将会抛出NumberFormatException异常。

3、字符串到字符型:

String s = "abc";

char c = s.charAt(1);//返回字符串s中位置为1的字符

System.out.println("c="+c);//输出结果为“c=b”

通过调用String类的charAt()方法可以返回给定位置处的字符。

4、字符串到字节数组:

String s = "hello world";

byte[] bytes = s.getBytes();//将字符串s转换为字节数组

System.out.println(Arrays.toString(bytes));//输出结果为"[104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100]"

通过调用String类的getBytes()方法可以将字符串转换为字节数组。

三、格式化函数

Java语言提供了格式化函数,其中最常用的函数是printf()函数。printf()函数可以将给定的格式化字符串输出到控制台,通过格式化符号可以为不同的数据类型格式化输出。

1、格式化字符串:

String name = "Tom";

int age = 18;

double score = 89.5;

System.out.printf("name=%s,age=%d,score=%.2f",name,age,score);

此时控制台输出结果为“name=Tom,age=18,score=89.50”,其中%s表示字符串,%d表示整型数,%.2f表示两位小数的浮点数。

2、格式化日期:

Date date = new Date();

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

String s = sdf.format(date);

System.out.println("s="+s);

将当前日期格式化为“年-月-日 时:分:秒”的字符串,通过SimpleDateFormat类的format()方法可以将日期对象格式化为字符串。

四、正则表达式函数

Java语言通过java.util.regex包提供了正则表达式支持,正则表达式是对字符串进行匹配和替换的强大工具。

1、验证字符串:

String regex = "\\d+";

String s = "123";

boolean result = s.matches(regex);//用正则表达式验证字符串是否满足条件

System.out.println("result="+result);//输出结果为“result=true”

通过matches()方法可以验证字符串是否满足给定的正则表达式,如果满足条件则返回true,否则返回false。

2、字符串替换:

String regex = "\\d+";

String s = "123abc456def789";

String result = s.replaceAll(regex,"*");//使用正则表达式替换字符串中满足条件的内容

System.out.println("result="+result);//输出结果为“result=*abc*def*”

通过调用replaceAll()方法可以使用正则表达式替换字符串中满足条件的内容。

五、字符集编码函数

Java语言提供了许多字符集编码函数。在进行数据传输或者数据存储操作时需要使用该功能。

1、字符串编码:

String s = "你好";

byte[] bytes = s.getBytes("UTF-8");//使用UTF-8字符集将字符串编码成字节数组

System.out.println(Arrays.toString(bytes));//输出结果为“[-28, -67, -96, -27, -91, -67]”

通过getBytes()方法可以将字符串使用指定的字符集编码成字节数组。

2、字符串解码:

byte[] bytes = new byte[]{-28, -67, -96, -27, -91, -67};

String s = new String(bytes,"UTF-8");//使用UTF-8字符集将字节数组解码成字符串

System.out.println("s="+s);//输出结果为“s=你好”

通过String类的构造函数可以将字节数组使用指定的字符集解码成字符串。

六、字符串缓冲区函数

Java语言中提供了字符串缓冲区函数,主要用于字符串拼接操作。在拼接过程中,字符串缓冲区比普通字符串的效率更高。

1、字符缓冲区拼接:

StringBuffer sb = new StringBuffer();

sb.append("hello");

sb.append("world");

String s = sb.toString();//将字符缓冲区中的内容转换为字符串

System.out.println("s="+s);//输出结果为“s=helloworld”

通过StringBuffer类的append()方法可以将字符串拼接到字符缓冲区中,通过toString()方法可以将字符缓冲区中的内容转换为字符串。

2、字符串缓冲区清空:

StringBuffer sb = new StringBuffer();

sb.append("hello");

System.out.println("sb="+sb);//输出结果为“sb=hello”

sb.delete(0,sb.length());//清空字符缓冲区中的内容

System.out.println("sb="+sb);//输出结果为“sb=”

通过调用delete()方法可以清空字符缓冲区中的内容。

以上就是Java中常用的字符串等函数使用技巧,希望对Java程序员有所帮助!