热门标签 | HotTags
当前位置:  开发笔记 > 开发工具 > 正文

整理Java编程中字符串的常用操作方法

这篇文章主要介绍了Java编程中字符串的常用操作方法的整理,字符串处理是Java入门学习中的基础知识,需要的朋友可以参考下

字符
一般情况下,当我们处理字符时,我们用原始数据类型 char。

示例

char ch = 'a';

// Unicode for uppercase Greek omega character
char uniChar = '\u039A'; 

// an array of chars
char[] charArray ={ 'a', 'b', 'c', 'd', 'e' };

然而在开发中,我们会遇到需要使用对象而不是原始数据类型的情况。为了达到这个需求。Java 为原始数据类型 char 提供了包装类 Character。

Character 类为操控字符提供了一系列有用处的类(例如:静态类)。你可以借助 Character 构造函数创造一个 Character 对象。

Character ch = new Character('a');

Java 编译器也将能在某些情况下为你创造一个 Character 对象。例如:如果你将一个原始 char 传输到一个可预期对象的方法,编译器就会为你自动将 char 转化成 Character。 如果转换从反方向进行,这个特点被称之为自动装箱或拆箱。

示例

// Here following primitive char 'a'
// is boxed into the Character object ch
Character ch = 'a';

// Here primitive 'x' is boxed for method test,
// return is unboxed to char 'c'

char c = test('x');

转义序列
有反斜杠(\)在前的字符是一个转义序列并且对于编译器有特殊的意义。

换行符(\n)在 System.out.println() 语句中经常使用,在字符串打印出来后换行。

以下的表格展示了 Java 转义序列:

转义序列 描述
\t 在文本中插入一个标签。
\b 在文本中插入一个退格。
\n 在文本中插入一个换行符。
\r 在文本中插入一个回车。
\f 在文本中插入一个换页。
\' 在文本中插入一个单引号字符。
\\ 在文本中插入一个反斜杠字符。

当一个转义序列遇到一个打印语句,编译器就会相应地解译。

示例

如果你想把引号放入引号内,必须使用转义序列, \” ,在内部引用:

public class Test {

 public static void main(String args[]) {
  System.out.println("She said \"Hello!\" to me.");
 }
}

这将产生以下结果:

She said "Hello!" to me.
Character 方法
以下列表是实现 Character 类所有子类的重要的实例方法:

SN 方法描述
1 isLetter()
确定具体的char值是一个字母
2 isDigit()
确定具体的char值是一个数字
3 isWhitespace()
确定具体的char值是一个空格
4 isUpperCase()
确定具体的char值是一个大写字母
5 isLowerCase()
确定具体的char值是一个小写字母
6 toUpperCase()
返回指定字符值的大写形式
7 toLowerCase()
返回指定字符值的小写写形式
8 toString()
返回代表指定的字符值的一个String对象,即一个字符的字符串


字符串
字符串,它被广泛应用于 Java 编程,是一个字符序列。在 Java 编程语言中,字符串是对象。

Java 平台提供了 String 类来创建和操作字符串。

创建字符串
最直接的方式来创建一个字符串是这样写的:

String greeting = "Hello world!";
当你创建一个字符串时,编译器在这种情况下用它的值创建一个 String 对象,如:"Hello world!'。

任何其他对象可以通过使用 new 关键字,并通过构造函数创建 String 对象。 String 类有11种构造函数提供使用不同类型的字符串的初始值,如一个字符数组。

public class StringDemo{

 public static void main(String args[]){
  char[] helloArray = { 'h', 'e', 'l', 'l', 'o', '.'};
  String helloString = new String(helloArray); 
  System.out.println( helloString );
 }
}

这将产生以下结果:

hello.

注 String 类是不可变的,因此,一旦创建了 String 对象那么是不能改变的。如果需要大量修改字符的字符串,那么应该使用 StringBuffer & StringBuilder 类。

String 长度
用于获取有关对象的信息的方法称为存取方法。可以和字符串一起使用的一个存取方法是 length() ,它返回包含在字符串对象中的字符数。

下面的两行代码被执行之后,len 等于17:

public class StringDemo {

 public static void main(String args[]) {
  String palindrome = "Dot saw I was Tod";
  int len = palindrome.length();
  System.out.println( "String Length is : " + len );
 }
}

这将产生以下结果:

String Length is : 17

连接字符串
String类包括用于连接两个字符串的方法:

string1.concat(string2);

这返回一个新的字符串,即在 string1 结尾处添加 string2。还可以使用 concat()方法连接字符串,如:

"My name is ".concat("Zara");

字符串更常使用 “ + ” 运算符连接在一起,如:

"Hello," + " world" + "!"

这将产生:

"Hello, world!"

看看下面的例子:

public class StringDemo {

 public static void main(String args[]) {
  String string1 = "saw I was ";
  System.out.println("Dot " + string1 + "Tod");
 }
}

这将产生以下结果:

Dot saw I was Tod

创建格式化字符串
已经有 printf() 和 format() 方法来打印输出格式的数字。 String 类有一个等价的方法 format(),它返回一个 String 对象,而不是一个 PrintStream 对象。

使用字符串的静态 format() 方法允许创建可重复使用的格式化字符串,而不是一次性的 print 语句。例如,如果代替以下方法:

System.out.printf("The value of the float variable is " +
     "%f, while the value of the integer " +
     "variable is %d, and the string " +
     "is %s", floatVar, intVar, stringVar);

可以这样写:

String fs;
fs = String.format("The value of the float variable is " +
     "%f, while the value of the integer " +
     "variable is %d, and the string " +
     "is %s", floatVar, intVar, stringVar);
System.out.println(fs);

String 方法
这里是由 String 类支持的方法列表:

SN 方法及描述
1 char charAt(int index)
返回指定索引处的字符。
2 int compareTo(Object o)
将这个字符串与另一个对象比较。
3 int compareTo(String anotherString)
比较两个字符串的字典顺序。
4 int compareToIgnoreCase(String str)
比较两个字符串按字典顺序,不区分大小写的差异。
5 String concat(String str)
将指定的字符串串连到这个字符串的结尾。
6 boolean contentEquals(StringBuffer sb)
返回true当且仅当该字符串代表相同的字符序列作为指定的StringBuffer。
7 static String copyValueOf(char[] data)
返回表示所指定的数组中的字符序列的字符串。
8 static String copyValueOf(char[] data, int offset, int count)
返回表示所指定的数组中的字符序列的字符串。
9 boolean endsWith(String suffix)
测试此字符串是否以指定的后缀结束。
10 boolean equals(Object anObject)
比较此字符串与指定的对象。
11 boolean equalsIgnoreCase(String anotherString)
比较这个字符串到另一个字符串,忽略大小写的考虑。
12 byte getBytes()
将此String解码使用平台的默认字符集,并将结果存储到一个新的字节数组中的字节序列。
13 byte[] getBytes(String charsetName
将此String解码使用指定的字符集的字节序列,并将结果存储到一个新的字节数组。
14 void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
从这个字符串复制字符到目标字符数组。
15 int hashCode()
为这个字符串返回一个哈希代码。
16 int indexOf(int ch)
返回此字符串指定字符第一次出现处的索引。
17 int indexOf(int ch, int fromIndex)
返回索引这个字符串中指定字符第一次出现处,指定索引处开始搜索。
18 int indexOf(String str)
返回此字符串指定子字符串的第一次出现处的索引。
19 int indexOf(String str,int fromIndex)
返回这个字符串中指定子字符串的第一次出现处的索引,从指定的索引处开始。
20 String intern()
返回字符串对象的规范化表示。
21 int lastIndexOf(int ch)
返回此字符串指定字符最后一次出现处的索引。
22 int lastIndexOf(int ch, int fromIndex)
返回此字符串指定字符最后一次出现处的索引,从指定索引开始向后搜索。
23 int lastIndexOf(String str)
返回此字符串指定子字符串的最右边出现处的索引。
24 int lastIndexOf(String str, int fromIndex)
返回索引这个字符串中指定子字符串的最后出现处,从指定的索引开始处向后搜索。
25 int length()
返回此字符串的长度。
26 boolean matches(String regex)
判断此字符串是否与给定的正则表达式匹配。
27 boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len)
测试两个字符串的区域等于。
28 boolean regionMatches(int toffset, String other, int ooffset, int len)
测试两个字符串的区域都是相等的。
29 String replace(char oldChar, char newChar)
返回从newChar更换oldChar所有出现在此字符串中产生一个新的字符串。
30 String replaceAll(String regex, String replacement
替换此字符串中给定的正则表达式与给定替换相匹配的每个子字符串。
31 String replaceFirst(String regex, String replacement)
替换此字符串匹配给定的正则表达式给定替换第一个子字符串。
32 String[] split(String regex)
分割围绕给定的正则表达式匹配的这个字符串。
33 String[] split(String regex, int limit)
分割围绕给定的正则表达式匹配的这个字符串。
34 boolean startsWith(String prefix)
测试此字符串是否以指定的前缀开头。
35 boolean startsWith(String prefix, int toffset)
测试此字符串是否以指定索引开始的指定前缀开始。
36 CharSequence subSequence(int beginIndex, int endIndex)
返回一个新的字符序列,这个序列的子序列。
37 String substring(int beginIndex)
返回一个新的字符串,它是此字符串的一个子字符串。
38 String substring(int beginIndex, int endIndex)
返回一个新的字符串,它是此字符串的一个子字符串。
39 char[] toCharArray()
这个字符串转换为一个新的字符数组。
40 String toLowerCase()
将所有在此字符串中的字符使用默认语言环境的规则小写。
41 String toLowerCase(Locale locale)
将所有在此字符串中的字符使用给定Locale的规则小写。
42 String toString()
这个对象(它已经是一个字符串!)返回字符串形式(这里是自己本身)。
43 String toUpperCase()
使用默认语言环境的规则将此String中所有的字符转换为大写。
44 String toUpperCase(Locale locale)
使用给定Locale的规则将此String中所有的字符转换为大写。
45 String trim()
返回字符串的一个副本,开头和结尾的空格去除。
46 static String valueOf(primitive data type x)
返回传递的数据类型参数的字符串表示形式。


推荐阅读
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • 学习笔记(34):第三阶段4.2.6:SpringCloud Config配置中心的应用与原理第三阶段4.2.6SpringCloud Config配置中心的应用与原理
    立即学习:https:edu.csdn.netcourseplay29983432482?utm_sourceblogtoedu配置中心得核心逻辑springcloudconfi ... [详细]
  • 安卓select模态框样式改变_微软Office风格的多端(Web、安卓、iOS)组件库——Fabric UI...
    介绍FabricUI是微软开源的一套Office风格的多端组件库,共有三套针对性的组件,分别适用于web、android以及iOS,Fab ... [详细]
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • 本文介绍了在git中如何对指定的commit id打标签,并解决了忘记打标签的问题。通过查找历史提交的commit id,可以在任意时间点打上标签。同时,还介绍了git中的一些常用命令和操作。 ... [详细]
  • 【MicroServices】【Arduino】装修甲醛检测,ArduinoDart甲醛、PM2.5、温湿度、光照传感器等,数据记录于SD卡,Python数据显示,UI5前台,微服务后台……
    这篇文章介绍了一个基于Arduino的装修甲醛检测项目,使用了ArduinoDart甲醛、PM2.5、温湿度、光照传感器等硬件,并将数据记录于SD卡,使用Python进行数据显示,使用UI5进行前台设计,使用微服务进行后台开发。该项目还在不断更新中,有兴趣的可以关注作者的博客和GitHub。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
author-avatar
爱情丫丫2502895047
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有