一 前言

这篇文章是针对初学者学习字符串使用的文章,在之前的基础系列文章中有使用过字符串,但是没有详细的讲解如何使用,这篇文章将会大方面将解String的API操作;

二 构造方法

String 的构造方法比较多,知识追寻者会挑选几个重点构造方法进行说明;String是不可变的字符串,每次使用StringAPI 都会生成新的字符串对象;想要详细了解底层内容,知识追寻者会在文末给出链接,初学者跳过;

2.1 String()

String() 构造方法是创建一个空的字符串对象;

public static void main(String[] args) {

String s = new String();

// 输出为空白行

System.out.println(s);

// 重新赋值

s = "知识追寻者";

// 知识追寻者

System.out.println(s);

}

2.2 String(String original)

从参数给定的字符串,复制一份并生成新的字符串;

public static void main(String[] args) {

String s = new String("知识追寻者");

// 知识追寻者

System.out.println(s);

}

2.3 String(byte[] bytes)

使用平台默认的字符集进行解码,将一个字节数组转为字符串;

public static void main(String[] args) {

// 创建

String str = new String("知识追寻者");

// 获得字节数组

byte[] bytes = str.getBytes();

// 解码生成字符串

String s = new String(bytes);

// 知识追寻者

System.out.println(s);

}

2.4 String(byte[] bytes, String charsetName)

使用指定的解码方式,并生成一个字符串;

String(byte[] bytes, Charset charset) 方法同这个方法功能差不多,在指定字符集时使用的是Charset对象进行指定;

public static void main(String[] args) throws UnsupportedEncodingException {

// 创建

String str = new String("知识追寻者");

// 获得字节数组

byte[] bytes = str.getBytes();

// 解码生成字符串

String s = new String(bytes,"UTF-8");

// 知识追寻者

System.out.println(s);

}

2.5 String(char[] value)

将字符数组生成新的字符串;

public static void main(String[] args) {

// 创建字符数组

char[] chars = {'3', '4', '5'};

String s = new String(chars);

// 345

System.out.println(s);

}

2.6 String(StringBuilder builder)

StringBuilder 是可变的字符串,但线程不安全,使用String(StringBuilder builder) 会将可变字符串转为String不可变字符串;

public static void main(String[] args) {

// 创建可变的字符串

StringBuilder builder = new StringBuilder("知识追寻者");

String s = new String(builder);

// 知识追寻者

System.out.println(s);

}

2.7 String(StringBuffer buffer)

StringBuilder 是可变的字符串,但线程安全,使用String(StringBuilder builder) 会将可变字符串转为String不可变字符串;

public static void main(String[] args) {

StringBuffer buffer = new StringBuffer("知识追寻者");

String s = new String(buffer);

// 知识追寻者

System.out.println(s);

}

三 字符串拼接

字符串拼接意指将多个字符串进行拼接成新的字符串;

3.1 使用 + 拼接

使用 + 进行拼接会将其他基本数据类型转为新的字符串;下面示例中使用 字符串变量和整型变量拼接生成新的字符串;其余类型类似;

public static void main(String[] args) {

String str1 = "知识追寻者";

String str2 = "很爱学习";

// 字符串拼接字符串

String s1 = str1 + str2;

// 字符串拼接其他数据类型

int i = 666;

String s2 = str1 + i;

// 知识追寻者很爱学习

System.out.println(s1);

// 知识追寻者666

System.out.println(s2);

}

3.2 String concat(String str)

使用 String concat(String str) 能将多个字符串拼接成一个字符串;

public static void main(String[] args) {

String str1 = "知识追寻者";

String str2 = "很爱学习";

String s = str1.concat(str2);

// 知识追寻者很爱学习

System.out.println(s);

}

四 字符串查询

字符串的位置默认是从0开始计算;查询字符串的返回值都是int类型,返回的是子串的位置;lastIndexOf 系列API 与indexOf 系列API类似,区别是indexOf 查找的是出现第一个的字符串字串,lastIndexOf 是查找最后一个字符字串的位置; 正确返回会出现字串在字符串中的位置,错误则一般报错返回-1;

4.1 indexOf(int ch)

顺序查询第一个字符出现的位置;

public static void main(String[] args) {

String str = "123123123";

int indexOf = str.indexOf('2');

// 1

System.out.println(indexOf);

}

4.2 indexOf(String str)

顺序查询第一个子串出现的位置;

public static void main(String[] args) {

String str = "123123123";

int indexOf = str.indexOf("123");

// 0

System.out.println(indexOf);

}

4.3 indexOf(int ch, int fromIndex)

从指定的位置,顺序查询第一个出现的字符;第一组的123 的位置 是 012 ;第二组123 的位置是 345 ; 第三组123的位置是 678 ; 显然从 2 位置开始查找字符’2‘, 就是从第二组123开始查询字符'2',第二组2字符的位置是4;

public static void main(String[] args) {

String str = "123123123";

int indexOf = str.indexOf('2',2);

// 4

System.out.println(indexOf);

}

4.4 indexOf(String str, int fromIndex)

从指定的位置,顺序查询第一个出现子串的位置;从字符串位置1开始查找字串123的位置也就是第二组123的起始位置,即3;

public static void main(String[] args) {

String str = "123123123";

int indexOf = str.indexOf("123",1);

// 3

System.out.println(indexOf);

}

五 字符串包含

contains(CharSequence s) 判定字符串中是否包含字串序列,如果包含返回true,否则返回false;

public static void main(String[] args) {

String str = "知识追寻者";

boolean p1 = str.contains("追寻者");

// true

System.out.println(p1);

boolean p2 = str.contains("33");

// false

System.out.println(p2);

}

六 字符串比较

6.1 compareTo(String anotherString)

两个字符串比较大小是根据每个字符Unicode 值在字符串中进行比较,当 前者 大于 后者返回 正数,前者等于后者 返回0;前者小于 后者返回负数;compareToIgnoreCase(String str) 与 compareTo(String anotherString) 区别就是会忽略字符串中字符的大小写,其他都一样;

public static void main(String[] args) {

String str1 = "a";

String str2 = "b";

String str3 = "A";

int compare1 = str1.compareTo(str2);

// -1

System.out.println(compare1);

int compare2 = str1.compareTo(str3);

// 32

System.out.println(compare2);

int compare3 = str2.compareTo(str3);

// 33

System.out.println(compare3);

int compare4 = str2.compareTo(str2);

// 0

System.out.println(compare4);

}

6.2 equals(Object anObject)

equals(Object anObject) 是比较字符串内容是否相等;equalsIgnoreCase(String anotherString) 与 equals(Object anObject) 却别是在比较的时候会忽略大小写,其余都相同;

public static void main(String[] args) {

String str1 = "学知识";

String str2 = "学知识";

String str3 = "好好好";

boolean equals1 = str1.equals(str2);

// true

System.out.println(equals1);

boolean equals2 = str1.equals(str3);

// false

System.out.println(equals2);

}

七 字符串匹配

字符串匹配是根据正则表达式进行匹配,如果完全匹配返回true,否则false;初学者跳过,以后可以深入学习;

public static void main(String[] args) {

String str = "123456789";

boolean matches = str.matches("[0-9]*");

// true

System.out.println(matches);

}

八 字符串截取

8.1 substring(int beginIndex)

substring(int beginIndex) 从指定的位置开始截取字串至字符串末尾;下面示例中追的位置是2,从2的位置(包括2)开始截取字串为 追寻者 ;

public static void main(String[] args) {

String str = "知识追寻者";

String substring = str.substring(2);

// 追寻者

System.out.println(substring);

}

8.2substring(int beginIndex, int endIndex)

substring(int beginIndex, int endIndex), 截取 beginIndex 位置 (包括)到 endIndex 位置(不包括)的字串;

也有喜欢是说成截取从 beginIndex 至 endIndex -1 位置的字串;

public static void main(String[] args) {

String str = "知识追寻者";

String substring = str.substring(2, 3);

// 追

System.out.println(substring);

}

九 字符串代表系列

字符串代表系列就是String代表的基本数据类型;也就是说基本数据类型都是可以通过valueOf 方法转为字符串类型;字符串类型是万能的了;

方法

代表含义

valueOf(boolean b)

布尔类型代表的字符串

valueOf(char c)

字符类型代表的字符串

valueOf(char[] data)

字符数组类型代表的字符串

valueOf(char[] data, int offset, int count)

子字符数组代表的字符串

valueOf(double d)

双精度型代表的字符串

valueOf(float f)

单精度类型代表的字符串

valueOf(int i)

整型代表的字符串

valueOf(long l)

长整型代表的字符串

valueOf(Object obj)

对象代表的字符串

使用示例:

public static void main(String[] args) {

double d = 123d;

String s = String.valueOf(d);

// 123.0

System.out.println(s);

}

十 参考文献

还有其他的String API 读者可以参照官方文档自行研究,大部分常用的系列的API都已经讲到;

string java api_java基础-stringAPI相关推荐

  1. java string类api_java基础—String类型常用api

    1.字符串比较 equals equalsIgnoreCase  忽略大小写做比较 2.字符串拆分(切片) split String a = "lemon:python:Java" ...

  2. java实现linkstring,【JAVA SE基础篇】32.String类入门

    [JAVA SE基础篇]32.String类入门 1.字符串 1.String类又称作不可变字符序列 2.String位于java.lang包中,java程序默认导入java.lang包下所有的类 3 ...

  3. abstract类_012 JAVA 抽象类、接口、String类的基础了解

    1.抽象方法和抽象类 抽象方法:使用abstract修饰的方法,没有方法体,只有声明.抽象方法可以当做是一种规范,让子类必须实现. 注意: 1.抽象方法没有方法体,只能以分号结尾 2.抽象方法只能声明 ...

  4. 【JAVA】对象中使用 static 和 String 的一些基础探究

    文章目录 前言 原题 static 简介 使用 String == 与 equals() 常量与非常量 intern() JAVA 源码 native 源码 使用 后记 前言 跟同学在讨论 JAVA ...

  5. java引入string类_Java基础教程——String类

    String类 Java程序中的所有字符串字面值(如 "abc" )都是String的实例 字符串是常量(因为 String 对象是不可变的,所以可以共享) 字符串的本质是字符数组 ...

  6. java mybatis基础

    java mybatis基础 1.1 什么是mybatis? mybatis是一个优秀的持久层框架. 避免几乎所有的JDBC代码和手动设置参数以及获取结果集的过程. 可以使用简单的xml或者注解来配置 ...

  7. java负数右移_收入囊中篇---Java程序基础(二)

    前言: 本篇是接着上一篇更新的,如果没有阅读上一篇的话,可以查阅或回顾一下. 1.收入囊中篇---Java基础必备知识(一) 2.收入囊中篇---Java程序基础(二) Java程序基础目录 1.Ja ...

  8. 【JAVA零基础入门系列】Day2 Java集成开发环境IDEA

    [JAVA零基础入门系列](已完结)导航目录 Day1 开发环境搭建 Day2 Java集成开发环境IDEA Day3 Java基本数据类型 Day4 变量与常量 Day5 Java中的运算符 Day ...

  9. 第三章 Java Servlet基础

    第三章 Java Servlet基础 3.6.2 转发 1.获得RequestDispatcher对象 2.RequestDispatcher对象调用forward()方法实现转发 请求转发工作原理 ...

最新文章

  1. 在koa中想要优雅的发送响应?看这就对了
  2. 嵌入式系统启动流程和启动代码的作用 !
  3. 如何配置三层交换机创建VLAN 3
  4. 2020中国十大最丑建筑出炉,你觉得哪个更丑?
  5. 眼睛-摄像 科技-文学
  6. GX works2 使用总结
  7. 行业大数据产品发展趋势
  8. 2023CAEE安规测试与环境试验技术设备展览会
  9. python的集合是什么_Python集合的概念是什么?Python集合的介绍
  10. 陶森大学计算机专业收入水平,2019PayScale计算机专业本科薪水排行
  11. SQL server和MySQL编号自动生成
  12. 教你如何用VB做控件*.ocx
  13. Windows 服务程序(一)
  14. 软件工程第二学期总结
  15. 继电器学习笔记(一)——继电器的分类电磁继电器和磁保持继电器的工作原理
  16. python字典表示摩尔斯电码_Python中的摩尔斯电码翻译器
  17. 如何判断模型过拟合?那些手段解决过拟合?
  18. PyCharm快捷键(替换和查找)
  19. Augustus部署
  20. day4_shop程序

热门文章

  1. CVPR2019:无监督深度追踪
  2. “SlidesAI带你进入PPT的新时代,让幻灯片制作变得更简单!”
  3. 周周过,周周结(十六)
  4. 【C语言】一元二次方程求解
  5. HDU AWR电磁场与微波实验 操作记录
  6. 利用Numpy计算行列式
  7. flutter - GridView 网格布局,以及设置子元素的间距和大小
  8. M36变径钢筋套筒AM36变径钢筋套筒特性及用途
  9. iso系统镜像刻录到光盘和U盘
  10. cesium-ol二三维联动(鹰眼图)