链接:

目录:

<>

  • <>

内容待整理:

API-String

特点

  • String类:
    1、String类都是对象。
    2、一旦初始化,就不可以被更改。因为是常量。
    3、通过String类的构造函数可以知道,将字节数组或者字符数组转成字符串。

字符串方法查找

  • 1、字符串是一个对象,那么它的方法必然是围绕操作这个对象的数据而定义的。
  • 2、你认为字符串中有哪些功能呢?
    • 2.1 有多少个字符
      int length()
      // 返回此字符串的长度。空参,用this
    • 2.2 字符的位置
      int indexOf(int ch, int fromIndex)
      // 返回指定字符在此字符串中第一次出现处的索引。
      // 参数:ch - 一个字符(Unicode 代码点)。
    • 2.3 获取指定位置上的字符
      char charAt(int index)
      // 返回指定索引处的 char 值。
      // 不存在的角标会抛出异常: java.lang.StringIndexOutOfBoundsException
    • 2.4 获取部分字符串
      String substring(int beginIndex, int endIndex)
      // 返回一个新字符串,它是此字符串的一个子字符串。
      // 该子字符串从指定的 beginIndex 处开始,直到索引 endIndex - 1 处的字符。
      // 因此,该子字符串的长度为 endIndex-beginIndex。
      // 开始角标和结束角标时:100%是左闭右开的。

字符串方法查找练习

  • 1、字符串是否以指定字符串开头。结尾同理。
    boolean startsWith(string)
    boolean endsWith(string)
  • 2、字符串中是否包含另一个字符串。
    boolean contains(string)
    int indexOf(string) //如果返回-1,表示不存在
  • 3、字符串中另一个字符串出现的位置。
    int indexOf(string)
  • 4、将字符串中指定的字符串替换成另一个字符串。
    String replace(oldstring, newstring)
  • 5、字符串如何比较大小。
    int compareTo(String anotherString)
  • 6、将字符串转成一个字符数组。或者字节数组。
    char toCharArray()
    byte getBytes()
  • 7、将字母字符串转成大写的字母字符串。
    String toUpperCase()
    String toLowerCase()
  • 8、将字符串按照指定的方式分解成多个字符串,"lisi, wangwu, zhaoliu"获取三个姓名。
    String[] split(string)

字符串练习

  • 案例一:字符串数组排序

    • 思路:
    • 1、曾经:int[]排序,选择,冒泡
    • 2、字符串排序同理
    • 3、for嵌套循环
    • 4、循环中进行元素的大小比较,满足条件就位置置换
  • 案例二:字符串出现的次数

       * "witcasteritcasttskitcasteiieocitcast"有几个itcast
    • 思路:
    • 1、无非就是在一个字符串中查找另一个字符串。indexOf。
    • 2、查找到第一次出现的指定字符串后,如何查找第二个呢?
    • 3、无需再从头开始,只要从第一次出现的位置 + 要找的字符串的长度的位置开始向后查找下一个第一次出现的位置即可
    • 4、当返回的位置是-1时,查找结束。
  • 案例三:按照长度递减获取字符串

    • "itcast_sh"要求,将该字符串按照长度由长到短打印出来

StringBuffer:

  • 使用:

    • 1、是一个字符串缓冲区,其实就是一个容器。

    • 2、长度可变,任意类型都可以。注意:是将任意数据都转成字符串进行存储。

    • 3、容器对象提供很多对容器中数据的操作功能,比如:添加、删除、查找、修改。

    • 4、必须所有的数据最终变成一个字符串。

    • 和数组最大的不同:

    • 数组:存储完可以单独操作每一个元素,每个元素都是独立的。

    • 字符串缓冲区:所有存储的元素都被转成字符串,而且最后拼成了一个大字符串。

      //1、创建一个字符串缓冲区对象,用于存储数据。
      StringBuffer sb = new StringBuffer(); //2、添加数据。不断添加数据后,要对缓冲区中的最后的数据进行操作,必须转成字符串才可以。
      sb.append(true).append("hehe").append(123);//方法调用链
      sb.append("haha");
      //String str = sb.append(true).append("hehe").append(123).toString();
      //run:truehehe123haha sb.insert(2, false);//在索引位置2开始插入,包括2
      //run:trfalseuehehe123haha //删除:delete和remove
      //deleteCharAt(int index); //删除指定位置的元素
      sb.delete(1, 4);//左闭右开
      //run:tlseuehehe123haha //替换:replace
      sb.replace(1, 4, "12345");//左闭右开,字符串可以比start到end长
      //run:t12345uehehe123haha //反转:reverse
      sb.reverse();
      //run:ahah321eheheu54321t //设置为定长(裁掉多余部分)
      sb.setLength(2);
      //run:ah System.out.println(sb); //“+”的底层过程展示
      //String s = "a"+5+'c';
      //s = new StringBuffer().append("a").append(5).append('c').toString();

String典型问题

  • 作业1:获取两个字符串的最大相同子串。

    • 思路:

    1、先明确两个字符串的长短,在长串中判断短串是否存在。
    2、存在,已找到,说明短串就是最大相同;
    不存在,就将短串按照长度递减的方式获取短串中的子串并到长串中判断。
    3、一旦存在,便结束查找。

  • 作业2:对字符串中字符进行自然顺序的排序

    • 思路:

      1、排序熟,但是都是对数组排序
      2、数组中的元素在哪里?在字符串中。把字符串转成数组。
      3、对数组排序。
      4、将排序后的数组转成字符串。

  • 作业3:String类的trim()

    • 1、写代码演示该方法的使用
    • 2、trim什么时候用?
    •  用户名,文本框输入,获取用户文本时,
    • 3、模拟一个和trim功能一样的函数。参阅源码。

API-基本类型包装类

概述

  • 场景:

    • 通过文本框获取用户输入的数字数据,但是得到的都是字符串。
    • 如果想要对字符串中的数字进行运算,必须将字符串转成数字。
  • java中提供了相应的解决的对象。

    • 基本数据类型对象包装类:java将基本数据类型值封装成对象。
    • 封装成对象的好处:可以提供更多的操作基本数值的功能。
    • 基本数据类型:8种

自动拆箱装箱

  • 示例:

    JDK1.5以后,有了一个包装类的新特性:目的是简化书写。自动装箱。
    Integer i = 4;//引用数据类型指向的必然是对象。
    //自动装箱。基本数值--->包装对象:三种方法。Integer i = Integer.valueOf(4);
    //valueOf源码中仍是new Integer(i);
    i = i + 5;//原理:等号右边将i对象转成基本数值。
    //i.intValue() + 5; 自动拆箱。加法运算后,再次装箱。
    //1.4里:i = Integer.valueOf(i.intValue()+5);

  • Integer重写equals方法

综合练习-面试题

  • "23 9 -4 18 100 7"
  • 要求对这串数字按照从小到大排序,生成一个数值有序的字符串。
  • 思路:

    • 1、只有排序会。排序需要数组,数组中就要有元素。
    • 2、元素:在字符串里,怎么取出来?要获取字符串中的内容,需要String对象
    • 3、从字符串获取到数值后存储到一个int数组中。因为要排序。
    • 4、将排序后的数组变成字符串。
    • 即:字符串转int[] ----> int[]排序 ----> int[]转字符串

API-集合框架

集合引入

集合方法演示

迭代

  • 迭代原理:

    • 取元素,无论是什么数据结构,最终共性的取出方式:
      一个一个取,取之前判断。有,取一个。没有,结束
    • 这种共性的方式称为:迭代。

集合使用细节

集合重复的概念引入

list

set

哈希表

二叉树结构

END

【JAVA】 05-String类和JDK5的更多相关文章

  1. Java中String类的方法及说明

    String : 字符串类型 一.      String sc_sub = new String(c,3,2);    //      String sb_copy = new String(sb) ...

  2. java.lang.String 类的所有方法

    java.lang.String 类的所有方法 方法摘要 char charAt(int index) 返回指定索引处的 char 值. int codePointAt(int index) 返回指定 ...

  3. java中String类学习

    java中String类的相关操作如下: (1)初始化:例如,String s = “abc”; (2)length:返回字符串的长度. (3)charAT:字符操作,按照索引值获得字符串中的指定字符 ...

  4. 深入分析Java的String类的方法与特点

    字符串是任何编程语言都必须支持的变量类型,有些编程语言是直接提供了原生的变量类型,有些编程语言则使用语法特性以 SDK 的形式提供支持.在Java编程平台中,对字符串的支持使用了后者的形式,就是通过在 ...

  5. java 中String类的常用方法总结,带你玩转String类。

    String类: String类在java.lang包中,java使用String类创建一个字符串变量,字符串变量属于对象.String类对象创建后不能修改,StringBuffer & St ...

  6. 在java中String类为什么要设计成final

    在java中String类为什么要设计成final? - 胖胖的回答 - 知乎 https://www.zhihu.com/question/31345592/answer/114126087

  7. java中String类为什么不可变?

    在面试中经常遇到这样的问题:1.什么是不可变对象.不可变对象有什么好处.在什么情景下使用它,或者更具体一点,java的String类为什么要设置成不可变类型? 1.不可变对象,顾名思义就是创建后的对象 ...

  8. JAVA的String类的常用方法(转载)

    Java-String类的常用方法总结   一.String类String类在java.lang包中,java使用String类创建一个字符串变量,字符串变量属于对象.java把String类声明的f ...

  9. 【转载】Java中String类的方法及说明

    转载自:http://www.cnblogs.com/YSO1983/archive/2009/12/07/1618564.html String : 字符串类型 一.      String sc_ ...

  10. 在java中String类为什么要设计成final?

    大神链接:在java中String类为什么要设计成final? - 程序员 - 知乎 我进行了重新排版,并且更换了其中的一个例子,让我们更好理解. String很多实用的特性,比如说“不可变性”,是工 ...

随机推荐

  1. CreateMutex函数 (转)

    CreateMutex函数 该函数找出当前系统是否已经存在指定进程的实例.如果没有则创建一个互斥体. CreateMutex()函数可用来创建一个有名或无名的互斥量对象,其函数原型为: HANDLE ...

  2. window10 安装 docker

    0.打开Hyper-V. 安装成功后,查看“任务管理器”: 1.下载安装程序. 2.一路"next"安装.安装成功后,桌面会出现图标: 3.双击该图标,成功运行后,右小角出现: 右 ...

  3. 写一下SPFA和迪杰斯特拉的模版。。。第一次写博客,有错请提出哦!

    SPFA的模版 #include<bits/stdc++.h> using namespace std; queue <int> q; typedef pair <int ...

  4. ubuntu 18.04下修改pip镜像源

    在home/用户名/目录下创建.pip文件夹 然后cd .pip 创建pip.conf文件touch pip.conf 输入以下内容然后保存即可 [global] timeout = 6000 ind ...

  5. js初步简单的编程代码

    简单图片切换编码demo图片地址自行替换 简单图片切换编码<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&q ...

  6. 洛谷P1982 小朋友的数字

    题目传送门 这个题的题目有点长,我们先来分析一波. 首先,这个题目中提到了以下几个量 1.最直接的就是每个小盆友手上的数字,这是题目给你的 2.每个小盆友的特征值 题目中给的定义是:每个小朋友的特征值 ...

  7. brdd 惰性执行 mapreduce 提取指定类型值 WebUi 作业信息 全局临时视图 pyspark scala spark 安装

    [rdd 惰性执行] 为了提高计算效率 spark 采用了哪些机制 1-rdd 基于分布式内存数据集进行运算 2-lazy evaluation  :惰性执行,即rdd的变换操作并不是在运行该代码时立 ...

  8. day22—一个AngularJS框架应用toDoList

    转行学开发,代码100天——2018-04-07 今天用AngularJS照着课程写了一个案例,即toDoList,记事清单效果. 主要实现以下效果: 1.通过文本框添加内容,同时添加事件列表.主要用 ...

  9. 搭建maven本地仓库

    1. 需先配置java环境. 2. 下载nexus. https://www.sonatype.com/download-nexus-repo-oss?submissionGuid=a015a3db- ...

  10. vlan vtp配置

    vlan vtp配置 VTP:Vlan Trunking Protocol 用于管理VLAN(统一创建.修改.删除).用来同步vlan. VTP的原理   VTP模式(服务器,客户端和透明模式)   ...