整理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)
返回传递的数据类型参数的字符串表示形式。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索java
字符串
java字符串编程题、java字符串经典编程、java字符串编程、java编程常用单词、java常用的编程技巧,以便于您获取更多的相关知识。

时间: 2024-10-27 02:39:46

整理Java编程中字符串的常用操作方法_java的相关文章

Java编程中正则表达式的用法总结_java

1. 字符串中的正则表达式使用正则表达式可以对字符串进行查找.提取.分割.替换等操作.String类当中提供了如下几个特殊方法: boolean matches(String regex):判断该字符串是否匹配指定的正则表达式. String replaceAll(String regex, String replacement):将该字符串中所有匹配regex的子串替换成replacement. String[] split(String regex):以regex作为分隔符,把该字符串分割成

Java编程中的一些常见问题汇总_java

本文列举了我在周围同事的Java代码中看到的一些比较典型的错误.显然,静态代码分析(我们团队用的是qulice)不可能发现所有的问题,这也是为什么我要在这里列出它们的原因. 如果你觉得少了什么,请不吝赐教,我会很乐意把它们加上. 下面列出的所有这些错误基本都与面向对象编程有关,尤其是Java的OOP. 类名 读下这篇短文"什么是对象".类应该是真实生活中的一个抽象实体,而不是什么"validators","controller", "m

深入解析Java编程中final关键字的作用_java

final class当一个类被定义成final class,表示该类的不能被其他类继承,即不能用在extends之后.否则在编译期间就会得到错误. package com.iderzheng.finalkeyword; public final class FinalClass { } // Error: cannot inherit from final class PackageClass extends FinalClass { } Java支持把class定义成final,似乎违背了面

详解Java编程中super关键字的用法_java

通过用static来定义方法或成员,为我们编程提供了某种便利,从某种程度上可以说它类似于C语言中的全局函数和全局变量.但是,并不是说有了这种便利,你便可以随处使用,如果那样的话,你便需要认真考虑一下自己是否在用面向对象的思想编程,自己的程序是否是面向对象的. 好了,现在开始讨论this&super这两个关键字的意义和用法.在Java中,this通常指当前对象,super则指父类的.当你想要引用当前对象的某种东西,比如当前对象的某个方法,或当前对象的某个成员,你便可以利用this来实现这个目的,当

整理Java编程中常用的基本描述符与运算符_java

描述符描述符是你添加到那些定义中来改变他们的意思的关键词.Java 语言有很多描述符,包括以下这些: 可访问描述符 不可访问描述符 应用描述符,你可以在类.方法.变量中加入相应关键字.描述符要先于声明,如下面的例子所示(斜体): public class className { // ... } private boolean myFlag; static final double weeks = 9.5; protected static final int BOXWIDTH = 42; pu

详解Java编程中向量(Vector)的应用_java

Vector(向量)是 java.util 包中的一个类,该类实现了类似动态数组的功能. 向量和数组相似,都可以保存一组数据(数据列表).但是数组的大小是固定的,一旦指定,就不能改变,而向量却提供了一种类似于"动态数组"的功能,向量与数组的重要区别之一就是向量的容量是可变的. 可以在向量的任意位置插入不同类型的对象,无需考虑对象的类型,也无需考虑向量的容量. 向量和数组分别适用于不同的场合,一般来说,下列场合更适合于使用向量: 如果需要频繁进行对象的插入和删除工作,或者因为需要处理的对

简单了解Java编程中对异常处理的运用_java

Java异常是一个描述在代码段中发生的异常(也就是出错)情况的对象.当异常情况发生,一个代表该异常的对象被创建并且在导致该错误的方法中被抛出(throw).该方法可以选择自己处理异常或传递该异常.两种情况下,该异常被捕获(caught)并处理.异常可能是由Java运行时系统产生,或者是由你的手工代码产生.被Java抛出的异常与违反语言规范或超出Java执行环境限制的基本错误有关.手工编码产生的异常基本上用于报告方法调用程序的出错状况. Java异常处理通过5个关键字控制:try.catch.th

详解Java编程中对线程的中断处理_java

1. 引言 当我们点击某个杀毒软件的取消按钮来停止查杀病毒时,当我们在控制台敲入quit命令以结束某个后台服务时--都需要通过一个线程去取消另一个线程正在执行的任务.Java没有提供一种安全直接的方法来停止某个线程,但是Java提供了中断机制. 如果对Java中断没有一个全面的了解,可能会误以为被中断的线程将立马退出运行,但事实并非如此.中断机制是如何工作的?捕获或检测到中断后,是抛出InterruptedException还是重设中断状态以及在方法中吞掉中断状态会有什么后果?Thread.st

深入解析Java编程中final关键字的使用_java

在Java中声明属性.方法和类时,可使用关键字final来修饰.final变量即为常量,只能赋值一次:final方法不能被子类重写:final类不能被继承.1.final成员声明 final 字段有助于优化器作出更好的优化决定,因为如果编译器知道字段的值不会更改,那么它能安全地在寄存器中高速缓存该值.final 字段还通过让编译器强制该字段为只读来提供额外的安全级别.  1.1关于final成员赋值1)在java中,普通变量可默认初始化.但是final类型的变量必须显式地初始化.   2)fin