字符串的概述

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. ASP.NET 在请求中检测到包含潜在危险的数据,因为它可能包括 HTML 标记或脚本

    <textarea><%=Server.HtmlEncode(strContent)%></textarea> 转载:https://www.cnblogs.com ...

  2. LeetCode解题思路

    刷完题后,看一下其他人的solution,受益匪浅. 可以按不同的topic刷题,比如数组.字符串.集合.链表等等.先做十道数组的题,接着再做十道链表的题. 刷题,最主要的是,学习思路. 多刷几遍.挑 ...

  3. pta7-7旅游规划(dijkstra算法)

    题目链接:https://pintia.cn/problem-sets/1101307589335527424/problems/1101314114762387456 题意:给n给城市,m条公路,公 ...

  4. Python+Selenium学习--上传文件

    场景 文件上传操作也比较常见功能之一,上传功能操作webdriver 并没有提供对应的方法,关键上传文件的思路.上传过程一般要打开一个系统的window 窗口,从窗口选择本地文件添加.所以,一般会卡在 ...

  5. java深拷贝与浅拷贝

    1.调用Object类的clone方法必须实现Cloneable接口,clone属于浅拷贝. 2.可以通过java的反序列化机制进行深拷贝. 3.可以直接用apache提供的一些包进行深拷贝和浅拷贝, ...

  6. linux详解sudoers

    sudo使用 Linux是多用户多任务的操作系统, 共享该系统的用户往往不只一个.出于安全性考虑, 有必要通过useradd创建一些非root用户, 只让它们拥有不完全的权限; 如有必要,再来提升权限 ...

  7. <context:annotation-config/>,<mvc:annotation-driven/>和<context:component-scan>之间的关系

    首先看一下三个注解各自定义: ① <context:annotation-config/> 1.如果你想使用@Autowired注解,那么就必须事先在 spring 容器中声明 Autow ...

  8. chorem浏览器无法下载

    下载的时候指定字节的长度 context.Response.AddHeader("Content-Length", bytes.Length.ToString()); contex ...

  9. 文件操作 day8

    一,文件操作基本流程. 计算机系统分为:计算机硬件,操作系统,应用程序三部分. 我们用python或其他语言编写的应用程序若想要把数据永久保存下来,必须要保存于硬盘中,这就涉及到应用程序要操作硬件,众 ...

  10. web 框架本质 及python三大框架对比

    . 导入Bootstrap.css (开发版3.3.7) . 还要Bootstrap.js,并且还要引入jQuery(). . 栅格系统 . container,row必须包含在container中 ...