【详细+超基础】Java-学习笔记 13

简介: 【详细+超基础】Java-学习笔记 13

7fae36d1e520c133b402b12f7f2ff1e.png

九、常用类库


String


用String创建的字符串是固定的 ,不可改变的对象,每一个字符串常量都是字符串类String的一个对象。


String类的常用的构造方法:

1.遇到双引号" "自动创建String类的对象

String s = "hello";  
String w = "world";

2.使用构造方法创建String类的对象

1) public String ( );  // 生成一个空字符串
  String s = new String (); 
2) public String (String str); // 创建一个以str为内容的字符串
    String s = new String ("hello world");
3) public String (char a[]); // 将字符数组a中的字符创建一个新字符串
  char a[] = {'a','b','c'};
  String s = new String (a); 
4) public String (char a[], int startIndex,int count); // 将字符数组a中第startIndex个字符串开始的count个字符组合起来创建为一个新字符串。 startInder从零开始。
  char a[] ={'a','b','c','d','e'};
  String s=new string(a,2,2);
5) public String (byte [] array); // 将字节数组array创建一个新的字符串
  byte[] a={ 54,55,56};
  String s=new String (a); // s="678",'6'的unicode码是54
6) public String (byte [] array,int offset,int length); // 将字节数组array的第offset个数组元素开始的length个字节创建一个新字符串。
  byte[] a={54, 55, 56};
  String s=new String (a,1,2); // s="78";
注意:
    通过双引号和String的构造方法创建字符串对象方式的区别:通过双引号自动创建的字符串对象存在于常量池,通过构造方法创建字符串对象存在于堆内存中。

String类的对象的常用成员方法

1) 获取字符串的长度
    public int length(); // 获取字符串长度
  int n ="hello world".length();
2) 字符串的比较
    public boolean equals(String s); // 判断字符串的内容是否相同
  String first =new String ("hello");
  String second =new String ("abc");
  boolean bol=first.equals(second); 
  public boolean equalsIgnoreCase(String s); // 判断字符串是否相同
  String first= new String ("ABC");
  String second= new String ("abc");
  boolean bol=first.equalsIgnoreCase(second);
  public boolean startsWith(String prefix); // 判断字符是否以字符串prefix为前缀
  String first ="hello";
  first.startsWith("he");
  public boolean  endsWith(String suffix); // 判断字符是否以字符串prefix为后缀
  String first ="hello";
  first.startsWith("lo");
  public int compareTo(String s); // 按照字典顺序进行字符串的计较
  String str="abc"; 
  String s="cde";
  int k=str.compareTo(s);     // k=-2,a比b的Unicode码少2
    int z=str.compareTo("abc");   // z=0;
  int i=str.compareTo("abcdef");  // i=-3,abc比abcdef的长度少3
  注意: 
        1.使用"=="判断两个字符串是否相同,是比较两个字符串的引用是否相同,即地址是否相同,使用equals方    法比较的才是字符串的内容是否相同
3)  public String trim(); // 返回字符串的副本,去掉前导空格和尾部空格   
4) 字符串的检索
  public int indexOf(String s); 
  // 从第一个字符开始寻找s子串首先出现的位置
  public int indexOf(String s,int startpoint);
  // 从第startpoint个字符开始寻找s子串首先出现的位置
  public int lastIndexOf(String s);
  // 从第一个字符开始寻找s子串最后出现的位置
  public int lastIndexOf(String s,int startpoint); 
  // 从第startpoint个字符开始寻找s子串最后出现的位置
  String s="hello world hello java";
  s1=s.indexOf("hello");    // s1=0     从0开始算,第一个字符的索引是0
  s2=s.indexOf("hello",5);  // s2=12
  s3=s.lastIndexOf("lo",1); // s3=15 
5) 字符的检索
    public int indexOf(int char); 
  // 返回从第一个字符开始寻找字符char首次出现的位置
  public int indexOf(int char,int startpoint);
  // 从第startpoint个字符开始寻找字符char首先出现的位置
  public int lastIndexOf(int char );
  // 从第一个字符开始寻找字符char最后出现的位置
  public int lastIndexOf(int char,int startpoint); 
  // 从第startpoint个字符开始寻找字符char最后出现的位置
6) 截取字符串
    public String substring (int startpoint); 
  // 返回从第startpoint个位置开始到结束截取的字符串
  public String substring (int start,int end);
    // 返回从第start个位置到第end个位置(不包括end位置)开始到结束截取的字符串
7) 替换
    public String replace(char oldChar,char newChar);
  // 用新字符串newChar替换字符串当中的旧字符串oldChar,返回替换后的新字符串
  public String replace(String regex, String newString);
  // 用新字符串newString替换字符串中所有的旧字符串regex,返回替换后的新字符串
  String s="i mist thssp";
  String temp=s.replace('t','s');
  // temp的值为"i miss sheep"
8) 字符串连接
    public String concat(String s)
    String str="hello";
  String s="java";
  String k=str.concat(s);
9) 字符串向字符数组转换
    public void getChar(int start,int end,char c[],int offset);
  // 将字符串从start到(end-1)位置的字符复制到字符数组c中,并从c的第offset位置开始存放这些字符
  public char[] toCharArray();
  // 将字符串中的全部字符复制到字符数组当中,返回该数组的引用
  public byte[] 
    // 将字符串转成字节数组
10) public String [] split(String regex); // 返回基于regex拆分此字符串后形成的字符串数组
  String s ="hello world";
  String [] sArray=s.split(" "); // 按空格拆分字符串s
  for (int i=0;i<aArray.length;i++ ){
        System.out.print(sArray[1]);
    }
11) public static String valueOf(type var);
  // valueOf方法:将var转换成字符串,type可以是任何基本类型
  String str =String.valueOf(120);
  // str的值是“120”

StringBuffer


String 定义的字符是不可改变的,如果对 String 对象作出改变,就会改变生成新对象,这种操作方式非常消耗内存,这种操作方式比较消耗内存,为了降低内存消耗和提高系统速度, Java提供了可变字符串缓冲类——StringBuffer。


StringBuffer可以实现多次增删改查字符串内容而不产生新对象,每一个StringBuffer对象都有初始容量,只要字符长度不超过其容量,就不需要分配新的内部缓冲容量。


StringBuffer的构造方法

public StringBuffer(); // 创建一个空的StringBuffer类的对象
public StringBuffer(int length); // 创建长度为length的StringBuffer对象
public StringBuffer(String str); // 用字符串str作参数进行创建StringBuffer对象

String的大多数方法StringBuffer都可以使用,在此之上,StringBuffer增加了String没有的删除字符串的方法。


StringBuffer的成员方法

1) StringBuffer append(type x)
    double d=3.14;
  StringBuffer st= new StringBuffer();
  st.append(true);
  st.append('c').append(d).append(15); // 最终st的值是true3.1415
2)  public char charAt(int n); 获取字符串中索引是n的字符,索引从0开始。
3)  public 

String Tokenizer


StringTokenizer类用于将一个字符串分解成若干个子串。


StringTokenizer的构造方法

public StringTokenizer (String str); // 构造一个使用默认分隔符解析 str 的StringTokenizer对象,Java默认分隔符包括空格、换行符、回车键、Tab键。
public StringTokenizer (String str); // 构造一个指定分隔符delim 解析 str 的StringTokenizer对象
StringTokenizer s1= new StringTokenizer ("我是 中国人");
StringTokenizer s2= new StringTokenizer ("I,am,a,chengxuyuan",",");

StringTokenizer的成员方法

1) public boolean hasMoreTokens(); // 是否还有分隔符,如果有返回true,没有则返回false;
2) public String nextToken(); // 返回字符串中的下一个字符;
3) public Object nextElement(); 
// 返回字符串的下一个子串,与nextToken 方法类似,不同之处在于本方法的返回值是Object,而不是String。
4) public int countTokens(); // 返回字符串中子串的个数。
案例:
import java.util.StringTokenizer;
public class StringTokenizerDemo {
  public static void main(String []args) {
    String s="123,大家好。hello";
    StringTokenizer s1= new StringTokenizer(s,",。");
    while(s1.hasMoreElements()){
      System.out.println(s1.nextElement());
    }
  }
}
运行结果:
    123
  大家好
  hello
相关文章
|
6月前
|
Java API 微服务
2025 年 Java 从入门到精通学习笔记全新版
《Java学习笔记:从入门到精通(2025更新版)》是一本全面覆盖Java开发核心技能的指南,适合零基础到高级开发者。内容包括Java基础(如开发环境配置、核心语法增强)、面向对象编程(密封类、接口增强)、进阶技术(虚拟线程、结构化并发、向量API)、实用类库与框架(HTTP客户端、Spring Boot)、微服务与云原生(容器化、Kubernetes)、响应式编程(Reactor、WebFlux)、函数式编程(Stream API)、测试技术(JUnit 5、Mockito)、数据持久化(JPA、R2DBC)以及实战项目(Todo应用)。
371 5
|
3月前
|
小程序 Java 知识图谱
Java 学习笔记 —— BMI & BMR 计算器
这是一个使用 Java 编写的 BMI 与 BMR 计算器小程序,可输入年龄、性别、身高和体重,计算身体质量指数(BMI)和基础代谢率(BMR),并输出健康评估结果。通过该项目,掌握了 Java 的输入处理、数据验证、条件判断、数学运算及格式化输出等基础知识,是 Java 初学者的理想练习项目。
|
3月前
|
Java
Java 数组学习笔记
本文整理Java数组常用操作:遍历、求和、查找、最值及二维数组行求和等典型练习,涵盖静态初始化、元素翻倍、去极值求平均等实例,帮助掌握数组基础与应用。
|
9月前
|
存储 Java
# 【Java全栈学习笔记-U1-day02】变量+数据类型+运算符
本篇笔记主要围绕Java全栈学习的第二天内容展开,涵盖了变量、数据类型、运算符以及Scanner类的应用。首先介绍了变量的概念与命名规范,以及如何定义和使用变量;接着详细讲解了Java中的基本数据类型,包括整型、浮点型、字符型、布尔型等,并通过实例演示了数据类型的运用。随后,深入探讨了各类运算符(赋值、算术、关系、逻辑)及其优先级,帮助理解表达式的构成。最后,介绍了如何利用Scanner类实现用户输入功能,并通过多个综合示例(如计算圆面积、购物打折、变量交换及银行利息计算)巩固所学知识。完成相关作业将进一步加深对这些基础概念的理解与实践能力。
167 13
|
9月前
|
开发框架 Java 开发工具
【Java全栈学习笔记-U1-day01】Java介绍
本笔记整理了Java学习的基础内容,涵盖程序理解、Java语言特性、JDK安装与配置、Java程序开发工具及编写步骤。重点介绍了Java程序的基本结构、编译和运行过程,以及输出语句的使用。通过实例演示了IDEA创建Java程序的方法,并强调了编码规范和注意事项。适合初学者复习和交流学习。 主要内容: 1. 理解程序:计算机组成、程序定义。 2. 简介:Java语言特点、技术平台、JDK作用。 3. 编写Java程序:编写、编译、运行步骤,基本结构。 4. 输出语句 5. DEA使用:新建工程、保存位置、文件介绍、新建类。 6. 扩展:注释、代码规范、大小写敏感、缩进等。
|
存储 缓存 Java
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
这篇文章详细介绍了Java中的IO流,包括字符与字节的概念、编码格式、File类的使用、IO流的分类和原理,以及通过代码示例展示了各种流的应用,如节点流、处理流、缓存流、转换流、对象流和随机访问文件流。同时,还探讨了IDEA中设置项目编码格式的方法,以及如何处理序列化和反序列化问题。
383 1
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
|
安全 Java API
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
String常量池、String、StringBuffer、Stringbuilder有什么区别、List与Set的区别、ArrayList和LinkedList的区别、HashMap底层原理、ConcurrentHashMap、HashMap和Hashtable的区别、泛型擦除、ABA问题、IO多路复用、BIO、NIO、O、异常处理机制、反射
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
|
Java 数据库连接 API
Spring 框架的介绍(Java EE 学习笔记02)
Spring是一个由Rod Johnson开发的轻量级Java SE/EE一站式开源框架,旨在解决Java EE应用中的多种问题。它采用非侵入式设计,通过IoC和AOP技术简化了Java应用的开发流程,降低了组件间的耦合度,支持事务管理和多种框架的无缝集成,极大提升了开发效率和代码质量。Spring 5引入了响应式编程等新特性,进一步增强了框架的功能性和灵活性。
245 0
|
存储 安全 Java
Java修仙之路,十万字吐血整理全网最完整Java学习笔记(高级篇)
本文是“Java学习路线”中Java基础知识的高级篇,主要对多线程和反射进行了深入浅出的介绍,在多线程部分,详细介绍了线程的概念、生命周期、多线程的线程安全、线程通信、线程同步,并对synchronized和Lock锁;反射部分对反射的特性、功能、优缺点、适用场景等进行了介绍。
Java修仙之路,十万字吐血整理全网最完整Java学习笔记(高级篇)
|
Java 数据安全/隐私保护
java学习笔记(基础习题)
java学习笔记(基础习题)
162 0