字符串的概述

1.什么是字符串:零个或多个字符组成的有限序列

2.如何使用字符串:(使用字符串分为两步)

         1)定义并初始化字符串

         2)使用字符,对字符串进行一些处理

         // 穿件一个字符串

         // 语法

         String arhs = “abc”;

         // 创建一个空的字符串

         String string = new String();

         // 创建一个字符串对象Demo

         String string = new String(“Demo”);

         System.out.println(string);

3.字符串的长度(常用到的地方:密码不能小于n位)

         语法:字符串.length();返回字符串的长度

                   String name = "tom";

        if(name.length() > 2){

            System.out.println("T");

        }else{

            System.out.println("F");

     }

4.字符串的比较

语法:字符串1.equals(字符串2);

                   比较两个字字符串是否相等,返回boolean类型的值true  or  false

                   String name1 = "tom";

        String name2 = "Jie";

        if(name1.equals(name2)){

            System.out.println("匹配成功!");

        }else{

            System.out.println("匹配失败!");

        }

                   字符串1 == 字符串2   

                   // name1 = A    name2 = A   true

        // name1 = A    name2 = a   false

        String name1 = "A";

        String name2 = "A";

        if(name1 == name2){

            System.out.println("true");

        }else{

            System.out.println("false");

        }

 

 

5.字符串忽略大小写的比较

字符串1.equalsIgnoreCase(字符串2);忽略掉字符串的大小写,相同返回true否则false

        String name1 = "ABC";

        String name2 = "abc";

        if(name1.equalsIgnoreCase(name2)){

            System.out.println("true");

        }else{

            System.out.println("false");

        }

6.字符串中大小写的转换

大写转换位小写toLowerCase()方法

// 定义ABC字符串

String name1 = "ABC";

// 使用toLowerCase()方法转换位小写

System.out.println(name1.toLowerCase());

小写转换位大写toUpperCase()方法

// 定义ABC字符串

String name1 = "ABC";

// 使用toUpperCase()方法转换位小写

System.out.println(name1.toUpperCase());

 

复杂字符串的处理

1.字符串的链接

使用拼接符“+“

  System.out.println(“这是”+”Java”);

2.concat()方法:将一个字符串链接带另一个字符串的后面

语法:字符串1.concat(字符串2)

// 定义字符串ABC

String string1 = "ABC";

// 定义字符串DEF

String string2 = "DEF";

// 使用concat()方法将字符串进行拼接

System.out.println(string1.concat(string2));

 

字符串的提取和查询

语法:public int indexOf(int ch): 返回指定字符在字符串中第一次出现的字符,如果此字符串中没有这样的字符,则返回 -1

语法:int indexOf(String str): 返回指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1

// 总字符串

        String Str = new String("Hello World!java");

        // 第一个字符串

        String SubStr1 = new String("Hello");

        // 第二个字符串

        String SubStr2 = new String("java");

        System.out.print("查找字符 o 第一次出现的位置 :");

        System.out.println(Str.indexOf('o'));

        System.out.print("子字符串 SubStr1 第一次出现的位置:");

        System.out.println(Str.indexOf(SubStr1));

        System.out.print("子字符串 SubStr2 第一次出现的位置 :");

        System.out.println(Str.indexOf(SubStr2));

public int lastIndexOf(int ch): 返回指定字符在此字符串中最后一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1

public int lastIndexOf(String str): 返回指定字符在此字符串中最后一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1

String Str = new String("Hello World!Java");

        String SubStr1 = new String("Hello");

        String SubStr2 = new String("Java");

        System.out.print("查找字符 o 最后出现的位置 :");

        System.out.println(Str.lastIndexOf('o'));

        System.out.print("子字符串 SubStr1 最后出现的位置:");

        System.out.println(Str.lastIndexOf(SubStr1));

        System.out.print("子字符串 SubStr2 最后出现的位置 :");

        System.out.println(Str.lastIndexOf(SubStr2));

substring() 方法返回字符串的子字符串

语法:public String substring(int beginIndex)

public String substring(int beginIndex, int endIndex)

参数

beginIndex -- 起始索引(包括)。

endIndex -- 结束索引(不包括)。

返回值:子字符串

String Str = new String("Hello World !!! Hello Java");

        System.out.print("返回值 :");

        System.out.println(Str.substring(4));

        System.out.print("返回值 :");

   System.out.println(Str.substring(4, 10));

 

trim() 方法用于删除字符串的头尾空白符。

语法

publicString trim()

参数

返回值

删除头尾空白符的字符串

String Str = new String("    Hello World!!!    ");

        System.out.print("原始值 :" );

        System.out.println( Str );

 

        System.out.print("删除头尾空白 :" );

        System.out.println( Str.trim() );

 

字符串的拆分

语法:字符串1.split(String separator,int limit);

                   Separator:可选,标识拆分字符串是使用一个或多个字符8

                   Limit:可选,该值用来限制返回数组中的元素个数

String words="长亭外古道边芳草碧连天晚风扶柳笛声残夕阳山外山";

        String[] printword=new String[100];//接收数组

       

        System.out.println("***原歌词格式***\n"+words);

        System.out.println("\n***拆分后歌词格式***");

        printword=words.split(" ");//按照空格进行拆分

        for(int i=0;i<printword.length;i++){

            System.out.println(printword[i]);//打印输出

   }

 

 

如何使用StringBuffer类

1.生命StringBuffer对象并初始化

//生命一个空的StringBuffer对象

StringBuffer sb = new StringBuffer();

// 生命一个字符串

StringBuffer sb = new StringBuffer(“好好学习,天天向上”);

 

常用的StringBuffer 类的方法

字符串.toString();将StringBuffe类型的字符串转换位String类型的对象并返回

String sb1 = sb2.toString();

 

字符串1.append(字符串2);

将字符串2链接到字符串1后面

 

字符串1.insert(位置,参数)将参数插入到字符串1的制定位置(int类型)后并返回

参数可以位String的任何类型

 

 

 

 

 

String与StringBuffer的区别

简单地说,就是一个变量和常量的关系。

StringBuffer对象的内容可以修改;

而String对象一旦产生后就不可以被修改,重新赋值其实是两个对象。
StringBuffer的内部实现方式和String不同,StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。所以在实际使用时,如果经常需要对一个字符串进行修改,例如插入、删除等操作,使用StringBuffer要更加适合一些。
String:在String类中没有用来改变已有字符串中的某个字符的方法,由于不能改变一个java字符串中的某个单独字符,所以在JDK文档中称String类的对象是不可改变的。然而,不可改变的字符串具有一个很大的优点:编译器可以把字符串设为共享的。 
StringBuffer:StringBuffer类属于一种辅助类,可预先分配指定长度的内存块建立一个字符串缓冲区。这样使用StringBuffer类的append方法追加字符比 String使用 + 操作符添加字符到一个已经存在的字符串后面有效率得多。因为使用 + 操作符每一次将字符添加到一个字符串中去时,字符串对象都需要寻找一个新的内存空间来容纳更大的字符串,这无凝是一个非常消耗时间的操作。添加多个字符也就意味着要一次又一次的对字符串重新分配内存。使用StringBuffer类就避免了这个问题。
StringBuffer是线程安全的,在多线程程序中也可以很方便的进行使用,但是程序的执行效率相对来说就要稍微慢一些。

Java第15章笔记的更多相关文章

  1. core java 第四章笔记

    import java.util.*; public class Employee { private static int nextid = 1; private String name; priv ...

  2. java第三章笔记

    java的基本程序设计结构: 1. 声明一个变量之后,必须用赋值语句对变量进行显示初始化,千万不能使用未被初始化的变量. 2.在java中不区分变量的声明与定义. 3.当参与/运算的两个操作数都是整数 ...

  3. Java第1章笔记

    第一章 计算机程序:计算机为完成某些功能产生的一系列有序指令集合. Java技术包括:JavaSE(标准版)  JavaEE(企业版) ---JavaME(移动版) 开发Java程序步骤:1.编写 2 ...

  4. Java第2章笔记

    1.什么是变量:在程序运行过程中它的值是允许改变的量 2.java中常用的数据类型分为四类八种  第一类:整型   int(整数类型)     byte(字节类型)    short(短整形)     ...

  5. Java第14章笔记

    Java 中无参无返回值和带参带返回值习题 编写一个 Java 程序,实现输出学生年龄的最大值 要求: 1. 要求通过定义无参带返回值的方法来实现,返回值为最大年龄 2. 方法中将​学生年龄保存在数组 ...

  6. Java第12章笔记

    如何定义 Java 中的方法 所谓方法,就是用来解决一类问题的代码的有序组合,是一个功能模块. 一般情况下,定义一个方法的语法是: 其中: //方法名为骆驼命名法 1. 访问修饰符:方法允许被访问的权 ...

  7. Java第3章笔记

    if基本语法: if(条件){// 表达式   // 代码块   } eg:    int a = 10;    if(a > 1){  System.out.println("内容& ...

  8. Java第11章笔记

    什么是类,什么是对象 举例说明什么是类,什么是对象? 一句话:万物皆对象 类的概念:类是具有相同属性和服务的一组对象的集合. 1.为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和服务两个部分 ...

  9. 《Think Python》第15章学习笔记

    目录 <Think Python>第15章学习笔记 15.1 程序员定义的类型(Programmer-defined types) 15.2 属性(Attributes) 15.3 矩形( ...

随机推荐

  1. 第二章 向量(c)无序向量

  2. Allowing GPU memory growth

    By default, TensorFlow maps nearly all of the GPU memory of all GPUs (subject to CUDA_VISIBLE_DEVICE ...

  3. HDU-1004.Let the ballon Rise(STL-map)

    2019-02-28-08:56:03 初次做本题是用字符串硬钢,最近校队训练时又遇到才知道用map是真的舒服.需要注意的是map的用法. clear : 清除map中的所有元素,map.clear( ...

  4. spring mybatis springmvc整合

    使用SSM(Spring.SpringMVC和Mybatis)已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方.之前没有记录SSM整合 ...

  5. goto,void,extern,sizeof分析

    goto: 程序的质量与goto出现的次数成反比,禁用 goto的副作用:破环了程序的结构化的顺序执行的过程,它有可能会跳过程序的应该执行的一些步骤. void: 修饰函数返回值和参数 c语言中没有定 ...

  6. RxJS之组合操作符 ( Angular环境 )

    一 merge操作符 把多个 Observables 的值混合到一个 Observable 中 import { Component, OnInit } from '@angular/core'; i ...

  7. java虚拟机的原理

    所谓虚拟机,就是一台虚拟的机器.它是一款软件,用来执行一系列虚拟计算机指令,大体上虚拟机可以分为系统虚拟机和程序虚拟机,Visual Box .Vmare就属于系统虚拟机.他们完全是对物理计算机的仿真 ...

  8. TZOJ 2018 SPF(连通图割点和分成的连通块)

    描述 Consider the two networks shown below. Assuming that data moves around these networks only betwee ...

  9. pycharm中conda环境部署

    问题 pycharm中部署了conda base环境,项目中 import sklearn 报错,缺少DLL模块 . 但是在Anaconda Prompt中 import sklearn 则成功. 发 ...

  10. Python: re.sub()第二个参数

    起源: 问题源于解析kissanime.io这个网站.为反扒抑或是防止ddos攻击,此视频页面,初进去会有个5秒延迟并提交一表单验证.而其表单验证,为下面一段html代码: <form id=& ...