Java基础语法<二> 字符串String

1. 代码点与代码单元

  Java字符串由char序列组成。大多数的常用Unicode字符使用一个代码单元就可以表示,而辅助字符需要一对代码单元表示。

  length()方法将返回采用UTF-16编码表示的给定字符串所需要的代码单元数量

  要想的到实际的长度,即代码点数量

  int cpCount = str.codePointCount(0.str.length())

  调用str.charAt(n)将返回位置n的代码单元,n介于0-str.length()-1之间

  要想得到第i个代码点

  int index = str.offsetByCodePoints(0,i);

  int cp = str.codePointAt(index);

 

2. 字符串API

char charAt (int index)

返回给定位置的代码单元。除非对底层的代码单元感兴趣,否则不需要调用这个方法

int codePointAt(int index) 5.0

返回从给定位置开始或结束的代码点

int offsetByCodePoints(int startIndex,int cpCount)  5.0

返回从startIndex代码点开始,位移cpCount后的代码点索引

int compareTo(String other)

按照字典顺序,如果字符串位于other之前,返回一个负数;如果字符串位于other之后,返回一个正数;如果两个字符串相等,返回0

boolean endsWith(String suffix)

如果字符串以suffix结尾,返回true

boolean equals(Object other)

如果字符串与other相等,返回true

Boolean equalsIgnoreCase(String other)

如果字符串与other相等(忽略大小写),返回true

int indexOf(String str)

int indexOf(String str,int fromIndex)

int indexOf(int cp)

int indexOf(int cp,int fromIndex)

返回与字符串str或代码点cp匹配的第一个子串开始位置。这个位置从索引0或fromIndex开始计算。如果原始串中不存在str,返回-1

int lastIndexOf(String str)

int lastIndexOf(String str,int fromIndex)

int lastIndexOf(int cp)

int lastIndexOf(int cp,int fromIndex)

返回与字符串str或代码点cp匹配的最后一个子串的开始位置。这个位置从原始串尾端或fromIndex开始计算。

int length()

返回字符串的长度

int codePointCount(int startIndex,int endIndex) 5.0

返回startIndex和endIndex – 1之间的代码点数量。没有配成对的代用字符将计入代码点

String replace(CharSequence oldString,CharSequence newString)

返回一个新字符串,这个字符串用newString代替原始字符串中所有的oldString。可以用String和StringBuilder对象作为CharSequence参数。

Boolean startsWith(String prefix)

如果字符串以prefix字符串开始,返回true

String substring(int beginIndex)

String substring(int beginIndex,int endIndex)

返回一个新字符串。这个字符串包含原始字符串中从beginIndex到串尾或endIndex-1的所有代码单元。

String toLowerCase()

返回一个新字符串。这个字符串将原始字符串中的所有大写字母改成了小写字母。

String toUpperCase()

返回一个新字符串。这个字符串将原始字符串中的所有小写字母改成了大写字母。

String trim()

返回一个新字符串。这个字符串将删除原始字符串头部和尾部的空格。

阅读联机API文档,下载JDK api 还有很多String API

3. 构建字符串

  每次连接字符串,都会构建一个新的String对象,既耗时,又浪费空间。使用StringBuilder类就可以避免这个问题的发生。

  如果需要用许多小段的字符串构建一个字符串,那么应该按照下列步骤进行

  1、 首先,构建一个空的字符串构建器。

StringBuilder builder = new StringBuilder(); 

  2、当每次需要添加一部分内容时,就调用append()方法

builder.append(ch);  //append a single character

builder.append(str);  //append a string

3、在需要构建字符串时就调用ToString方法,将可以得到一个String对象,其中包含了构建器中的字符序列。

String completedString = builder.toString();

StringBuilder的前身是StringBuffer,其效率稍有些低,但允许采用多线程的方式执行添加或删除字符的操作。如果所有字符串在一个单线程中编辑,则应该用StringBuilder替代它。

StringBuilder%StringBuffer API

这两个类的API是相同的。

StringBuilder()

构造一个空的字符串构建器

int length()

返回构建器或缓冲器中的代码单元数量

StringBuilder append(Strigng str)

追加一个字符串并返回this

StringBuilder append(char c)

追加一个代码单元并返回this

StringBuilder appendCodePoint(int cp)

追加一个代码点,并将其转换为一个或两个代码单元并返回this

void setCharAt(int i,char c)

将第i个代码单元设置为c

StringBuilder insert(int offset,String str)

在offset位置插入一个字符串并返回this

StringBuilder delete(int startIndex,int endIndex)

删除偏移量从startIndex到endIndex-1的代码单元并返回this

String toString()

返回一个与构建器或缓冲器内容相同的字符串

时间: 2024-10-13 19:54:27

Java基础语法<二> 字符串String的相关文章

黑马程序员——Java基础语法(二)---流程控制

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 本文主要介绍java基础语法中的流程控制,流程控制是我们写出灵活代码的基础.常见的流程控制主要有四类:判断结构.选择结构.循环结构.其他控制结构 一.判断结构 判断结构的标志是if语句,if语句主要有三种表现形式: 1.if(条件表达式) { 执行语句 } 注意: 1.如果if语句中只有一条语句,那么可以不写大括号.不过初学者一定要写括号,以免出错. 2.如果if语句没写大括号,if就只能控制

Java基础语法(二)&lt;运算符&gt;

运算符: 下面的都是相关的练习: 1.键盘录入一个三位整数数,请分别获取该三位数上每一位的数值 import java.util.Scanner; public class Test02 { public static void main(String[] args) { System.out.println("请输入一个三位整数:"); int value = new Scanner(System.in).nextInt(); int geWei = value % 10; int

Java基础语法 - 可变字符串 StringBuffer

StringBuffer 类是线程安全的可变字符序列,一个类似于String类的字符串缓冲区,两者本质上是一样的,但StringBuffer类的执行效率要比String类快很多.String类创建的字符串对象是不可修改的,StringBuffer类创建的字符串序列是可以修改的,且实体容量会随着存放的字符串增加而自动增加. 创建StringBuffer类 1 package com.mingri.chapter_02; 2 3 public class demo1 { 4 public stati

JavaSE入门学习7:Java基础语法之语句(下)

继续接着Java基础语法来:JavaSE入门学习5:Java基础语法(一)和JavaSE入门学习6:Java基础语法(二). 语句 Java经常使用的3种循环:while.do...while,for. (5)Java循环语句之while 语法: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" > 运行

Java基础语法(二)——数据类型扩展与运算符详解

一.前言 ? 上文我们讲解了有关java编程基础语法的变量与关键字的知识点,本文将主要对java基础语法中的运算符进行讲解. ? 在讲解语法之前我们先来讲一下真正的开发环境. 二.Java集成开发环境 2.1eclipse的使用方法 ? 之前我们在体验java编程或者写小的demo的时候,都是命名一个.java的源文件,在dos界面中编译和运行,但是这样给人的感觉并不友好,为了解决这一问题,一些大佬便开发了与各种语言对应的集成开发环境,其中包含文本编辑处理,自动编译,简化运行,随时进行代码调试.

Java基础语法(二)

目录 Java基础语法(二) 一.强类型语言 二.数据类型分类 1.基本数据类型 2.引用数据类型 三.基本类型转换 自动类型转换 强制类型转换 四.表达式类型的自动提升 Java基础语法(二) 承接上篇,谈到不同变量装载着不同数据类型的数据,那么Java支持的数据类型有哪些呢,本篇做一点小小的探究. 一.强类型语言 Java就是一种强类型的语言,包含着以下含义: 所有的变量必须在声明之后才能使用,不能用的不明不白或者用得很随意. 指定类型的变量只能结束类型与之匹配的值,很好理解,种瓜得瓜,种豆

Java 语法 索引 ----- 字符串(String)

组合吃烤串的各种方法 String a = "Hello"; String b = new String(" World"); //在循环里面的话要小心用 String c = a+b; // Hello World a += b; // Hello World String x = "Hello " + "World"; 比较字符串 boolean x = a.equals(b); // compares string bo

java 基础(二)

java 基础(二)java 基础(二) 2016-2-1 by Damon 61. 编写多线程程序有几种实现方式 Java 5以前实现多线程有两种实现方法:一种是继承Thread类:另一种是实现Runnable接口.两种方式都要通过重写run()方法来定义线程的行为,推荐使用后者,因为Java中的继承是单继承,一个类有一个父类,如果继承了Thread类就无法再继承其他类了,显然使用Runnable接口更为灵活. 补充:Java 5以后创建线程还有第三种方式:实现Callable接口,该接口中的

黑马程序员——Java基础语法(一) --- 关键字、标识符、注释、常量和变量、运算符

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- 本篇博文主要总结java的基础语法,主要的内容包括:关键字.标识符.注释.常量和变量.运算符几部分. 一.关键字 关键字是被Java语言赋予了特殊含义的单词.关键字中所有的字母都是小写. java中的关键字主要包括如下几部分: 1.用于定