专业的JAVA编程教程与资源

网站首页 > java教程 正文

java面试题之三:字符串操作(字符串笔试题java)

temp10 2024-10-18 13:51:08 java教程 7 ℃ 0 评论

字符串的连接操作,

String类型:

java面试题之三:字符串操作(字符串笔试题java)

首先说一下基本操作方法,字符串的基本操作方法中包含以下几种:(1)获取字符串长度length() (2)获取字符串中的第i个字符charAt(i) (3)获取指定位置的字符方法getChars(4个参数)

1、 获取字符串长度方法length()

格式:int length = str.length();

2、获取字符串中的第i个字符方法charAt(i)

格式:char ch = str.charAt(i); //i为字符串的索引号,可得到字符串任意位置处的字符,保存到字符变量中

3、获取指定位置的字符方法getChars(4个参数)

格式:char array[] = new char[80]; //先要创建以一个容量足够大的char型数组,数组名为array

str.getChars(indexBegin,indexEnd,array,arrayBegin);

解释一下括号中四个参数的指向意义:1、indexBegin:需要复制的字符串的开始索引

2、 indexEnd: 需要复制的字符串的结束索引,indexEnd-1

3、array: 前面定义的char型数组的数组名

4、arrayBegin:数组array开始存储的位置索引号

这样我们就可以将字符串中想要的范围内的字符都复制到字符数组中,将字符数组打印输出即可。

与getChars()类似的方法有一个getBytes(),两者使用上基本相同,只是getBytes()方法创建的是byte类型的数组,而byte编码是默认字符集编码,它是用编码表示的字符。

Java字符串的拼接:早期是用StringBuildder和StringBuffer

Stringbuffer和StringBuffer类型,拼接字符串用append();

案例:

/**
 * 字符串处理类
 */
public class Example3 {
 public static void main(String args[]){
 Example3 ex3 = new Example3();
 ex3.testStringBuffer();
 }
 public void testStringBuffer() {
 // 声明StringBuffer对象
 StringBuffer buf = new StringBuffer() ;
 // 向StringBuffer中添加内容
 buf.append("Hello ") ;
 // 可以连续调用append()方法
 buf.append("World").append("!!!") ;
 // 添加一个转义字符
 buf.append("\n") ;
 // 添加数字
 buf.append("number = ").append(1).append("\n") ;
 // 添加字符
 buf.append("char = ").append('C').append("\n");
 // 添加布尔值
 buf.append("boolean = ").append(true) ;
 // 直接输出对象,调用toString()
 System.out.println(buf) ;
 }
 public void testStringBuilder() {
 // 声明StringBuffer对象
 StringBuilder biuilder = new StringBuilder() ;
 // 向StringBuffer中添加内容
 biuilder.append("Hello ") ;
 // 可以连续调用append()方法
 biuilder.append("World").append("!!!") ;
 // 添加一个转义字符
 biuilder.append("\n") ;
 // 添加数字
 biuilder.append("number = ").append(1).append("\n") ;
 // 添加字符
 biuilder.append("char = ").append('C').append("\n");
 // 添加布尔值
 biuilder.append("boolean = ").append(true) ;
 // 直接输出对象,调用toString()
 System.out.println(biuilder) ;
 }
}

打印出来的结果:

Hello World!!!

数字 = 1

字符 = C

布尔 = true

然后常见的字符串操作还有一个StringBuilder,这个是其实和Stringbuffer的作用是类似的;两者最大的区别:Stringbuffer是线程安全的,Stringbuffer里面所有的方法都加了synchrinzed关键字,StringBuilder不是线程安全的;

首先说运行速度,或者说是执行速度,在这方面运行速度快慢为:StringBuilder > StringBuffer > String

String最慢的原因:

String为字符串常量,而StringBuilder和StringBuffer均为字符串变量,即String对象一旦创建之后该对象是不可更改的,但后两者的对象是变量,是可以更改的。

所以总结下来:

String:适用于少量的字符串操作的情况

StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况

StringBuffer:适用多线程下在字符缓冲区进行大量操作的情况

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表