Java学习笔记—第九章 字符串String

第九章 字符串String

  1. Java中使用String类来创建一个字符串变量,字符串变量是类类型变量,是一个对象。声明字符串的语法格式如下:String s;
  2. 创建字符串:通过String类提供的构造方法可创建字符串,有以下几种方式:

    (1)创建字符串对象时直接赋值,例如:

    String s1 = "hello";

    String s2 = new String("hello");

    (2)由一个字符串创建另一个字符串,例如:

    String s1 = "hello";

    String s2 = new String(s1);

    (3)由字符型数组创建字符串,例如:

    char[] c = {‘a‘,‘b‘,‘c‘};

    String s = new String(c);

  3. 获取字符串的长度:使用length()方法可以获取一个字符串的长度。
  4. 字符串的连接:除了"+"运算符,还有concat()方法,例如:

    String s1 = "hello";

    String s2 = "world";

    String s3 = s1.concat(s2);

  5. 字符串的比较:

    (1)equals方法:比较当前字符串对象的内容与参数指定的字符串对象的内容是否形同。例如:

    String s1 = new String("hello");

    String s2 = new String("hello");

    s1.equals(2);                    //结果为true

    比较字符串是否相等不能用“==”,当用“==”比较两个对象时,实际上是判断两个字符串是否为同一个对象。因此,即使字符串内容相同,由于是不同对象(对应引用地址不同),返回值也为false,即表达式“s1==s2”的结果为false。

  6. euqalsIgnoreCase方法:忽略大小写比较两个字符串的内容是否相同。例如:

    String s1 = new String("hello");

    String s2 = new String("Hello");

    s1.equalsIgnoreCase(s2);          //结果为true

  7. compareTo方法:按照字典顺序比较两个字符的大小。例如:

    String s = new String("abcde");

    s.compareTo("boy");     //小于0

    s.compareTo("aba")      //大于0

    s.compareTo("abcde")    //等于0

  8. 字符串的检索:

    (1)indexOf(String s):从当前字符串的头开始检索字符串s,返回首次出现s的位置。如果没有则放回-1;(指定参数字符串s也可以是指定字符char a)

    (2)lastIndexOf(String s):检索当前字符串,返回最后出现s的位置,如果没有则返回-1。

    例如:

    String str = new String("I am a good cat");

    str.indexOf("a");      //返回值为2

    str.lastIndexOf("a");  //返回值为13

  9. 字符串的截取:

    (1)substring(int index):从当前字符串的index位置开始截取到最后得到一个子字符串。

    (2)substring(int start,int end):从当前字符串的start(包括start)位置开始,截取到end(不包括end)位置得到一个子字符串。

    例如:

    String s1 = "helloworld";

    String s2 = s1.substring(2);   //s2为lloworld

    String s3 = s1.substring(3,5); //s3为lo

  10. 字符串大小写转换:

    (1)toLowerCase():将当前字符串的全部字符转换为小写。

    (2)toUpperCase():将当前字符串的全部字符转换为大写。

    例如:

    String s = new String("Hello");

    s.toLowerCase();    //hello

    s.toUpperCase();    //HELLO

  11. 字符的替换:

    (1)replace(char old, char new):将当前字符串由old指定的字符替换成由new指定的字符。

    (2)replaceAll(String old, String new):将当前字符串中由old指定的字符串替换成由new指定的字符串。

    (3)trim():去掉当前字符串首尾的空格

    例如:

    String s= "I mist sheep";

    String temp = s.replace(‘t‘,‘s‘);   //temp为I miss sheep

    String s1 = " I am a student ";

    String temp1 = s1.trim();           //temp1为I am a student

  12. 字符串转换为数值:通过调用Integer类的类方法parseInt(String s),可以将数字格式的字符串,如“1234”转化为int型数据。例如:

    String s = "1234";

    int x = Integer.parseInt(s);    //x=1234

    类似的其他数据类型也有相应的类方法将字符串转化由相应的基本类型。如parseByte()、parseShort()、parseDouble()、parseLong()。

  13. 数值转换为字符串:使用String类的valueOf方法可将数值转换为字符串。例如:

    String s = String.valueOf(789.456);   //s为"789.456"

  14. StringBuffer类:用于创建和操作动态字符串,为该类对象分配的内存会自动扩展以容纳新增的文本。适用于处理可变字符串。

    (1)append()方法:将给定的字符追加到当前字符串的末尾。

    (2)insert()方法:在当前字符串的指定位置插入字符。

    无论是append或者insert,都是在原有对象基础上操作,并没有创建新的对象。

时间: 2024-08-02 06:52:45

Java学习笔记—第九章 字符串String的相关文章

《Python基础教程(第二版)》学习笔记 -> 第九章 魔法方法、属性和迭代器

准备工作 >>> class NewStyle(object): more_code_here >>> class OldStyle: more_code_here 在这两个类中,NewStyle是新式的类,OldStyle是旧式的类,如果文件以__metaclass__ = type 开始,那么两个类都是新式类. 构造方法 构造方法,当一个对象被创建后,会立即调用构造方法.Python中创建一个构造方法,只要把init方法的名字从简单的init修改成__init__

《DOM Scripting》学习笔记-——第九章 CSS-DOM

本章内容: 一.style属性 二.如何检索样式信息 三.如何改变样式 属性: 包含位置信息:parentNode , nextSibling , previousSibling , childNodes , firstChild , lastChild 包含元素本身信息:nodeType,nodeName 包含元素样式信息:style 举例: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w

Android学习笔记—第九章 Activity的加载模式

第九章 Activity的加载模式 task:类似于栈,每次打开界面会创建一个task,然后将这开启的界面放入到该task中. (1)standard:默认模式 每次都会创建一个新的界面,将该界面加入task中 (2)singleTop:栈顶单实例模式 a. 如果目标Activity不存在,创建一个新的Activity,存入到task中 b. 如果目标Activity已经存在,并且处于栈顶,不会再创建新的Activity c. 如果目标Activity已经存在,但不处于栈顶,创建一个新的Acti

java学习笔记[前四章]

一    :Java 发展简史 1. Java 是一种语言,具有自己的语法和数据结构 2. Java 来自于 sun ,sun 指的是斯坦福大学网络 3. 具体发展历程 Java的具体发展历程 时间 描述 1991~1995 Sun 为了占领智能消费电子产品市场,由james gosling 负责该项目,来开发 Oak(橡树) 语言 1995 将 Oak 改名为 Java,当时也是window95版本的发布 1996 发布 JDK1.0 1997 发布 JDK1.1 1998 发布 JDK1.2

Java学习笔记(1)String常见面试知识总结

简介(摘自Java源码) Strings are constant; their values cannot be changed after they are created. String buffers support mutable strings. Because String objects are immutable they can be shared. 从这句话当中,我们可以知道String是一个不可变对象,对象的值不可以被改变.因为这一点,所以String是线程安全的.然后S

java学习笔记第二章

二.面向对象 Oriented Object 以类组织代码,以对象来封装数据 面向过程:以方法(函数)组织数据,以线性的思维去解决:当数据量少,无问题:当数据多了,方法多了,以 方法为核心组织代码,累人:扩展性差,不易维护(当多人协同项目时) C语言结构体,多个变量集合在一块,方便管理:按照这个想法,横向竖向扩散/深入思考,把相近的方法也放在一起,方法反复调用变量, 深度发散,就把方法及变量打包到一块,这种概念在C语言里没有,就起名叫做类 class [ YY] 以类来组织代码,易于维护,易于扩

JavaScript高级程序设计学习笔记第九章--客户端检测

1.能力检测:能力检测的目标不是识别特定的浏览器,而是识别浏览器的能力.(我的理解就是识别浏览器能做什么不能做什么) 2.怪癖检测:目标是识别浏览器的特殊行为.但与能力检测确认浏览器支持什么能力不同,怪癖检测是想要知道浏览器存在什么缺陷(“怪癖”也就是 bug). 3.用户代理检测:争议最大的一种客户端检测技术.用户代理检测通过检测用户代理字符串来确定实际使用的浏览器.在每一次 HTTP 请求过程中,用户代理字符串是作为响应首部发送的,而且该字符串可以通过 JavaScript 的 naviga

Java学习笔记(二)-------String,StringBuffer,StringBuilder区别以及映射到的同步,异步相关知识

1. String是不可变类,改变String变量中的值,相当于开辟了新的空间存放新的string变量 2. StringBuffer 可变的类,可以通过append方法改变变量的值,且StringBuffer是线程安全的,它的很多方法都是同步方法,支持并发操作,适用于多线程 3. StringBuilder 可变的类,但是线程不安全的,用于单线程中性能高于StringBuffer 4. HashTable 线程安全的,HashMap线程不安全的 5. 那么,什么是同步,什么是异步 同步:A发过

matlab学习笔记第九章——变换

1.拉普拉斯变换:时间函数f(t)的拉普拉斯变换用下面的积分式定义: L {f(t)} = ??0∞f(t)e-stdt,我们通常把f(t)的拉普拉斯变换写F(s).在MATLAB计算拉普拉斯变换,我们要调用laplace(f(t)),它做的是符号计算. L (tn) = n!/sn+1 要计算拉普拉斯逆变换,我们输入ilaplace 2.一个函数f(t)的傅立叶变换被定义为: F(ω) = ??-∞∞f(t)e-iωtdt 在MATLAB中我们可以输入fourier命令计算一个函数的傅立叶变换