文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

老生常谈Java字符串进阶(必看篇)

2023-05-31 12:21

关注

前言

最常用的对字符串操作的类有三个,分别是String,StringBuilder,StringBuffer,下面将会详细的说说这三个类......

String

String类代表字符串,这个是最基本的对字符串的类,这个也是使用比较多的类,这里就不再详细介绍了

构造

new String(String str)

new String(StringBuilder str)

new String(StringBuffer str)

new String(byte[] bys,String charsetName) 通过使用指定的字符集解码指定的 byte 子数组,构造一个新的 String。

常用方法

str charAt(int index) 返回指定索引处的字符

String concat(String str) 将指定字符串str连接到此字符串的结尾,返回连接成功后的字符,因此需要接受才能有效果

boolean contains(CharSequence s) 判断此字符串是否包含指定的char值序列,这里的 CharSequence是一个接口,可以直接使用它的子类作为参数(String,StringBuffer,StringBuild)

static String copyValueOf(char[] c) 将字符数组变成字符串并且返回

static String copyValueOf(char[] c,int off,int count) 将截取的字符数组变成字符串并且返回,off是开始截取的下标,count是截取的个数

boolean endWith(String s) 判断字符串是否是以s结尾

boolean equals(Object o) 用于比较

int indexOf(char c) 返回字符c在字符串中第一次出现的索引

int indexOf(char c,int fromIndex) 从指定索引处开始搜索,查找第一次出现的索引

int indexOf(String str) 返回指定子字符串在此字符串中第一次出现处的索引。

int indexOf(String str,int fromIndex) 返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。

boolean isEmpty()

int length()

boolean matches(String regex) 是否匹配正则表达式

trim() 返回字符串的副本,忽略前导空白和尾部空白。

String substring(int beginIndex) 返回一个新的字符串,它是此字符串的一个子字符串。

String substring(int beginIndex, int endIndex) 返回一个新字符串,它是此字符串的一个子字符串。

String toUpperCase() 使用默认语言环境的规则将此 String 中的所有字符都转换为大写。

String[] split(String regex) 根据给定正则表达式的匹配拆分此字符串。

String[] split(String regex, int limit) 根据匹配给定的正则表达式来拆分此字符串。

char[] toCharArray() 将此字符串转换为一个新的字符数组。

byte[] getBytes(Charset charset) 使用给定的 charset 将此 String 编码到 byte 序列,并将结果存储到新的 byte 数组

注意

上面的new String(byte[] bys,String charsetName)这个构造方法很重要,它可以改变字符串的编码集(和byte[] getBytes(Charset charset))配合着使用,下面我们来看一个例子,代码如下:

// 将GBK格式的中文写入a.txt文件File file = new File("src/a.txt");FileOutputStream fileOutputStream = new FileOutputStream(file);String str = "中";byte[] by = str.getBytes("GBK"); // 将字符串改为GBK编码集fileOutputStream.write(by);fileOutputStream.close();//从a.txt文件中读取中文FileInputStream fileInputStream = new FileInputStream(file);int len;byte[] bys = new byte[4];while ((len = fileInputStream.read(bys)) != -1) { System.out.println(new String(bys, "GBK"));}fileInputStream.close();

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 资料下载
  • 历年真题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯