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

相关推荐

  • Java中String类(字符串操作)的10个常见问题和解决方法

    本文介绍Java中关于String最常见的10个问题: 1. 字符串比较,使用 "==" 还是 equals() ?简单来说, "==" 判断两个引用的是不是同一个内存地址(同一个物理对象).而 equals 判断两个字符串的值是否相等.除非你想判断两个string引用是否同一个对象,否则应该总是使用 equals()方法.如果你了解 字符串的驻留 ( String Interning ) 则会更好地理解这个问题 2. 对于敏感信息,为何使用char[]要比Stri

  • 学习Java的Date、Calendar日期操作

    本文介绍了Java开发过程中日期相关操作,分享的代码如下: package jse; import java.io.UnsupportedEncodingException; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Locale; /** * 常用日期操作 * * @a

  • java中常用工具类之字符串操作类和MD5加密解密类

    java中常用的工具类之String和MD5加密解密类 我们java程序员在开发项目的是常常会用到一些工具类.今天我分享一下我的两个工具类,大家可以在项目中使用. 一.String工具类 package com.itjh.javaUtil; import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import

  • Java中StringBuilder字符串类型的操作方法及API整理

    0.StringBuilder类型简介 StringBuilder类型是一个可变的字符串类型,StringBuilder类型的API与StringBuffer类型的API基本一致,唯一的区别是StringBuilder的使用假设在单一线程中,换句话说,StringBuilder是线程不安全的.StringBuilder在实例化的时候,通常也会默认设定一个容量大小,一般为字符串参数的长度+16.StringBuilder是继承AbstractStringBuilder这个抽象类的,而这个抽象类的内

  • Java中常见的日期操作(取值、转换、加减、比较)

    Java 的开发过程中免不了与 Date 类型纠缠,准备总结一下项目经常使用的日期相关操作,JDK 版本 1.7,如果能够帮助大家节约那么几分钟起身活动一下,去泡杯咖啡,便是极好的,嘿嘿.当然,我只提供了可行的解决方案,并不保证是最佳实践,欢迎讨论. 1. 日期取值 在旧版本 JDK 的时代,有不少代码中日期取值利用了 java.util.Date 类,但是由于 Date 类不便于实现国际化,其实从 JDK1.1 开始,就更推荐使用 java.util.Calendar 类进行时间和日期方面的处

  • java的io操作(将字符串写入到txt文件中)

    复制代码 代码如下: import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.FileWriter;import java.io.IOException;import java.io.PrintStream;import java.io.PrintWriter;import java.io.RandomAccessFile; public cla

  • java日期操作工具类(获取指定日期、日期转换、相隔天数)

    本文实例为大家分享了java日期操作工具类,获取指定日期前一天.后一天:日期转换:两个日期之间相隔天数等工具类,供大家参考,具体内容如下 import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; public class

  • Java日期时间操作的方法

    本文实例为大家分享了java日期时间基本操作方法,供大家参考,具体内容如下 1. 获得Calendar实例:Calendar c = Calendar.getInstance(); 2. 定义日期/时间的格式:SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 3. 把日期/时间转换成固定格式,使用SimpleDateFormat的format()方法: String datetime = sdf.for

  • java常见的字符串操作和日期操作汇总

    一.字符串操作 创建字符串 String s2 = new String("Hello World"); String s1 = "Hello World"; 1.字符串连接 多个字符串链接时,每个字符串之间用+相连,+就是字符串链接,连接之后生成一个新的字符串. 2.获取字符串长度 a.lenght() 根据索引从0开始,截取字符串长度 a.substring(1,3) ; 从1号位开始截取到3号位. 3.获取指定字符串的索引位置 indexOf()方法;last

  • 整理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

  • JavaScript中字符串的常用操作方法及特殊字符

    下面看下js字符串的常用操作方法,具体内容如下所述: charAt()            获取字符串中特定索引处的字符: toupperCase()  将字符串的所有字符转换成大写字母: indexOf()          返回字符串中特定字符串第一次出现的位置 substring()        返回字符串的某个子串 slice()               返回字符串中的某个子串,支持负数参数(字符串中倒数第一个字符定为-1) concat()            用于将多个字符

  • Python3中字符串的常用操作方法及查找方法

    目录 一·字符串的介绍 二·字符串的查找方法 一·字符串的介绍 首先我们得先了解什么是字符串,字符串是python中最为常见的数据类型,我们一般使用引号来进行创建.一共有三种创建方式:单引号(''),双引号(""),三引号("""""").前两种没有太大区别,但使用三引号时里面的内容可以进行换行操作. 代码举例: # 双引号 a = "hello world" print(a) # 输出结果:hello w

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

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

  • 浅谈Java编程中string的理解与运用

    一,"=="与equals() 运行以下代码,如何解释其输出结果? public class StringPool { public static void main(String args[]) { String s0="Hello"; String s1="Hello"; String s2="He"+"llo"; System.out.println(s0==s1);//true System.out

  • Java 编程中十个处理异常的建议

    一.尽量不要使用e.printStackTrace(),而是使用log打印. 反例: try{ // do what you want }catch(Exception e){ e.printStackTrace();} 正例: try{ // do what you want }catch(Exception e){ log.info("你的程序有异常啦,{}",e);} 理由: printStackTrace()打印出的堆栈日志跟业务代码日志是交错混合在一起的,排查异常日志不太方便

  • java编程中实现调用js方法分析

    本文实例讲述了java编程中实现调用js方法.分享给大家供大家参考,具体如下: /* * 加载脚本引擎,并在java中调用js方法 */ public void test2() { ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("javascript"); try { String str="2&1"

  • java编程中字节流转换成字符流的实现方法

    java编程中字节流转换成字符流的实现方法 import java.io.*; /*readLine方法是字符流BufferReader类中的方法 * 而键盘录入的方法是字节流InputStream的方法 * 那么能不能将字节流转成字符流再使用字符流缓冲区中的readLine方法呢? * * InputStreamReader类是字节流转向字符流的桥梁.(它本身是一个字符流所以在构造时接受一个字节流) * * */ public class TransStreamDemo { public st

  • 深入理解Java编程中异常处理的优劣

    Java编程中的异常处理是一个很常见的话题了,几乎任何一门介绍性的Java课程都会提到异常处理.不过,我认为很多人其实没有真正掌握正确处理异常情况的方法和策略,最多也就不过了解个大概,知道概念.我想对三种不同程度和质量的Java异常处理进行了讨论,所阐述的处理异常的方式按手法的高下分为:好,不好和恶劣三种.同时提供了一些解决这些问题的技巧.首先解释一些java异常处理中必须搞清楚的定义和机制.Java语言规范将自Error类或RuntimeException类衍生出来的任何违例都称作"不可检查&

  • Python3字符串的常用操作方法之修改方法与大小写字母转化

    目录 一·字符串中的修改方法 二·大小字母转化(这里同样也是临时变化) 一·字符串中的修改方法 1·replace():将某字符串内的指定的旧字符替换成新的字符(这里是临时替换,就是说替换时只是利用原字符串来形成了一个新的替换过后的字符串,但是原字符串并没有发生改变) 语法:字符串序列.replace(旧字符,新字符,替换次数),这里的替换次数是指将旧字符替换成新字符的个数,没有指定就会将全部的旧字符替换成新字符. 代码演示: str2 = "之久天意为征西,复位林秀之故也,久" pr

随机推荐