Java-String类学习笔记

String类位于java.lang包下,String类代表字符串,字符串是常量,它们的的值在创建后不能更改;为了支持可变的字符串,Java还为我们提供了StringBuilder和StringBuffer类。

1. String类中常用方法

a. 与索引、长度相关的方法

返回值类型 函数名 功能
char charAt(int index) 返回指定索引处的 char 值。
String subString(int beginIndex,int endIndex) 返回一个新字符串,它是此字符串的一个子字符串。该子字符串从beginIndex 处开始,直到索引 endIndex - 1 处的字符。
int indexOf(int ch) 返回指定字符在此字符串中第一次出现处的索引。
int indexOf(String str) 返回指定子字符串在此字符串中第一次出现处的索引。
int lastIndexOf(int ch) 返回指定字符在此字符串中最后一次出现处的索引。
int lastIndexOf(String str) 返回指定子字符串在此字符串中最右边出现处的索引。
int length() 返回此字符串的长度。
boolean isEmpty() 当且仅当 length()0 时返回 true

注意:在执行subString方法时,会创建新的字符数组,而不是使用现存的字符数组。

b. 与比较、包含、转换相关的方法

返回值类型 函数名 功能
String concat(String str) 将指定字符串连接到此字符串的结尾。
boolean contains(charsequence s) 当且仅当此字符串包含指定的 char 值序列时,返回 true。
boolean endWith(String suffix) 测试此字符串是否以指定的后缀结束。
boolean startsWith(String prefix) 测试此字符串是否以指定的前缀开始。
int compareToIgnoreCase(String str) 按字典顺序比较两个字符串,不考虑大小写。
boolean equalsIgnoreCase(String anotherString) 将此 String 与另一个 String 比较,不考虑大小写。
byte[] getBytes(charset charset) 使用给定的 charset 将此 String 编码到 byte 序列,并将结果存储到新的 byte 数组。
char[] toCharArray() 将此字符串转换为一个新的字符数组。
String toUpperCase() 使用默认语言环境的规则将此 String 中的所有字符都转换为大写。
String toLowerCase() 使用默认语言环境的规则将此 String 中的所有字符都转换为小写。

c. 与正则表达式相关的方法

返回值类型 函数名 功能
String matches(String regex)  
String replaceAll(String regex,String replacement) 使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。
String replaceFirst(String regex,String replacement) 使用给定的 replacement 替换此字符串匹配给定的正则表达式的第一个子字符串。
String[] split(String regex) 根据给定正则表达式的匹配拆分此字符串。
String trim() 返回字符串的副本,忽略前导空白和尾部空白。
String replace(char oldchar,char newchar) 返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。
 1     public static void main(String[] args) {
 2 //      去除字符串的前导空白和尾部空白
 3         String str = " abc ed f ";
 4         System.out.println(str);
 5         System.out.println(str.trim());
 6 //      将字符串用空白字符分割开来
 7         String[] strArray = str.split("\\s+");
 8         System.out.println(strArray.length);
 9         for(String s:strArray){
10             System.out.println(s);
11         }
12     }

运行结果:

2. 题外话

a. String对象一旦创建不可改变,而StringBuilder和StringBuffer是可变的,这就表示它们创建后仍可以修改他们的值;StringBuffer是synchronized的,它是线程安全的,但是比StringBuilder慢,如无安全要求,推荐使用StringBuilder。

b. Java中字符串的连接是用“+”来实现的,此操作的过程是通过StringBuilder或StringBuffer类及它们的append方法实现。

c. 将字符串转换成日期

1 String str = "Fri 17,2013";
2 Date date = new SimpleDateFormat("MMM d,yy", Locale.ENGLISH).parse(str);
3 System.out.println(date);
时间: 2024-10-11 10:06:44

Java-String类学习笔记的相关文章

Java Object类学习笔记

看下Api文档的一些说明 public class Object Class Object is the root of the class hierarchy. Every class has Object as a superclass. All objects, including arrays, implement the methods of this class. Since: JDK1.0 从JDK1.0就已经存在的元老类,类结构的根,所有类的父类,所有类都实现了这个类的方法,包含

java String 类 基础笔记

字符串是一个特殊的对象. 字符串一旦初始化就不可以被改变. String s = "abc";//存放于字符串常量池,产生1个对象 String s1=new String("abc");//堆内存中new创建了一个String对象,产生2个对象 String类中的equals比较字符串中的内容. 常用方法: 一:获取 1.获取字符串中字符的个数(长度):length();方法. 2.根据位置获取字符:charAt(int index); 3.根据字符获取在字符串中

C++ string 类 学习笔记

string类型支持长度可变的字符串,C++标准库将负责管理与存储字符相关的内存,以及提供各种有用对的操作.标准库string类型的目的就是满足对字符串的一般应用. 1.string对象的定义和初始化 通过string类的构造函数来进行初始化. 常用的有: //默认构造函数,s1为空串 string s1; //将s2初始化s1的一个副本 string s2(s1); //将s3初始化为一个字符串字面值副本 string s3("value"); //将s4初始化为字符'c'的n个副本

《C++ Primer Plus》16.1 string类 学习笔记

16.1.1 构造字符串程序清单16.1使用了string的7个构造函数.程序清单16.1 str1.cpp--------------------------------------------------// str1.cpp -- introducing the string class#include <iostream>#include <string>// using string constructors int main(){    using namespace

java System类学习笔记

java 中 System 类 最常见到 System.out.println(); System类 定义为 public final class System extends Object{} 包含几个有用的类字段和方法,用了关键字 final 修饰,表示此类不能被其他类继承. 其构造方法为 private System{} (构造方法私有化,不能被外部实例化). System 中有三个属性:in,out,err: 1.private final static InputStream in=n

Java File类学习笔记4:自定义一个类,过滤指定扩展名的文件

自定义一个类,继承FileNameFilter类,获得某一目录下所有指定扩展名的文件. 方法一: /** * 说明: * 自定义FilterByJava类,过滤指定扩展名的文件 * */ import java.io.File; import java.io.FilenameFilter; public class FilterByJava implements FilenameFilter{ private String ext; public FilterByJava(String ext)

Java File类学习笔记2:File类对象及常用操作方法

一. 文件.相对路径与绝对路径 1.文件 (1)标准文件:就像图片,音乐文件等. (2)目录文件:也就是平常所说的文件夹. (3)虚拟内存文件:系统在运行程序时生成的临时性文件. 2.文件的路径 (1)相对路径:相对于某一文件的路径,形象地说是把两文件的绝对路径相同的部分砍掉,剩下的就是相对路径 如: A文件是"D:\MyDocuments\StudySample\src\cn\xmh", B文件是"D:\MyDocuments\StudySample\src\netjava

java 创建类 学习笔记

package com.ctgu.java.exer; public class TestPerson { } class Person{ //属性: String name; int age; boolean sex; //方法: public void eat(){ System.out.println("人吃饭"); } public void sleep(){ System.out.println("人睡觉"); } public String getNam

java/android 设计模式学习笔记(14)---外观模式

这篇博客来介绍外观模式(Facade Pattern),外观模式也称为门面模式,它在开发过程中运用频率非常高,尤其是第三方 SDK 基本很大概率都会使用外观模式.通过一个外观类使得整个子系统只有一个统一的高层的接口,这样能够降低用户的使用成本,也对用户屏蔽了很多实现细节.当然,在我们的开发过程中,外观模式也是我们封装 API 的常用手段,例如网络模块.ImageLoader 模块等.其实我们在开发过程中可能已经使用过很多次外观模式,只是没有从理论层面去了解它. 转载请注明出处:http://bl

java/android 设计模式学习笔记(10)---建造者模式

这篇博客我们来介绍一下建造者模式(Builder Pattern),建造者模式又被称为生成器模式,是创造性模式之一,与工厂方法模式和抽象工厂模式不同,后两者的目的是为了实现多态性,而 Builder 模式的目的则是为了将对象的构建与展示分离.Builder 模式是一步一步创建一个复杂对象的创建型模式,它允许用户在不知道内部构建细节的情况下,可以更精细地控制对象的构造流程.一个复杂的对象有大量的组成部分,比如汽车它有车轮.方向盘.发动机.以及各种各样的小零件,要将这些部件装配成一辆汽车,这个装配过