4【重点,常用API】字符串API(String/StringBuffer/StringBuilder...)

day12 String类(案例做一遍)

day13 StringBuffer

5 常用类(Math/System/BigDecimal/日期类)

day14 其他常用类

以上花3天时间

第九,第十天

字符串(最常见的对象,没有之一):就是由多个字符组成的一串数据。它可以和字符数组进行相互转换。

字符串的特点:字符串是常量,他们的值(注意,是内容!不是引用不能改,引用是有可能改的)创建后不能更改。字符串字面值“abc”也可看成是一个字符串对象。

构造方法:
        A:public String()        空构造
        B:public String(byte[] bytes)        把字节数组转成字符串
        C:public String(byte[] bytes,int offset,int length)        把字节数组的一部分转成字符串
        D:public String(char[] value)        把字符数组转成字符串
        E:public String(char[] value,int offset,int count)        把字符数组的一部分转成字符串
        F:public String(String original)        把字符串常量值转成字符串【不常用】

字符串的常用方法: public int length()     返回此字符串的长度

字面值作为字符串对象和通过构造方法创建对象的不同
            String s = new String("hello");和String s = "hello";的区别?

前者创建两个对象,后者只创建一个对象。

注:==比较的是地址值是否相同,equals()经过String重写后比较的是对象的成员变量值是否相同

字符串的面试题(看程序写结果)
        A:==和equals()
            String s1 = new String("hello");
            String s2 = new String("hello");
            System.out.println(s1 == s2);// false
            System.out.println(s1.equals(s2));// true

String s3 = new String("hello");
            String s4 = "hello";
            System.out.println(s3 == s4);// false
            System.out.println(s3.equals(s4));// true

String s5 = "hello";
            String s6 = "hello";
            System.out.println(s5 == s6);// true
            System.out.println(s5.equals(s6));// true
        B:字符串的拼接
            String s1 = "hello";
            String s2 = "world";
            String s3 = "helloworld";
            System.out.println(s3 == s1 + s2);// false【变量相加,先开空间,再拼接】
            System.out.println(s3.equals((s1 + s2)));// true

System.out.println(s3 == "hello" + "world");// 应该是true【常量相加,先加后在常量池找,有就返回没有就创建】
            System.out.println(s3.equals("hello" + "world"));// true

字符串的功能(方法):

A:判断功能
            boolean equals(Object obj)          比较字符串的内容是否相同
            boolean equalsIgnoreCase(String str)        比较字符串的内容是否相同(忽略大小写)
            boolean contains(String str)        判断大字符串中是否包含小字符串
            boolean startsWith(String str)        判断字符串是否以某个指定的字符串开头
            boolean endsWith(String str)        判断字符串是否以某个指定的字符串结尾
            boolean isEmpty()        判断字符串内容是否为空(String s = ""; 字符串内容为空    String s = null; 字符串对象不存在!)

例子:登录猜数字游戏

B:获取功能
            int length()        获取字符串的长度
            char charAt(int index)        获取指定索引位置的字符
            int indexOf(int ch)        返回指定字符在此字符串中第一次出现处的索引【不是char类型因为'a'和97是一样的】
            int indexOf(String str)        返回指定字符串在此字符串中第一次出现处的索引【一般是该字符串的首字母】
            int indexOf(int ch, int fromIndex)        返回指定字符在此字符串中从指定位置后第一次出现处的索引
            int indexOf(String str, int fromIndex)        返回指定字符串在此字符串中从指定位置后第一次出现处的索引
            String substring(int start)        从指定位置开始截取字符串,默认至末尾
            String substring(int start, int end)        从指定位置开始到指定位置结束截取字符串

C:转换功能
            byte[] getBytes()        把字符串转换为字节数组
            char[] toCharArray()        把字符串转换为字符数组
            static String valueOf(char[] chs)        把字符数组转换成字符串【括号里是个数组】
            static String valueOf(int i)        把int类型的数据转换成字符串
            String toLowerCase()        把字符串转成小写
            String toUpperCase()        把字符串转成大写
            String concat(String str)        把字符串拼接【直接 s1 + s2更加直观方便】

D:其他功能
            a:替换功能 
                String replace(char old,char new)       
                String replace(String old,String new)       
            b:去空格功能(两端空格,中间如果有空格不管)
                String trim()       
            c:按字典比较功能【重点掌握】 相同输入0 不同输出差值
                int compareTo(String str)       
                int compareToIgnoreCase(String str)

第十一天

StringBuffer的构造方法
        A:StringBuffer()
        B:StringBuffer(int size)
        C:StringBuffer(String str)

数组高级

(1)排序

A:冒泡排序
            相邻元素两两比较,大的往后放,第一次完毕,最大值出现在了最大索引处。同理,其他的元素就可以排好。

 public static void bubbleSort(int[] arr) {for(int x=0; x<arr.length-1; x++) {for(int y=0; y<arr.length-1-x; y++) {if(arr[y] > arr[y+1]) {int temp = arr[y];arr[y] = arr[y+1];arr[y+1] = temp;}}}}

B:选择排序
            把0索引的元素,和索引1以后的元素都进行比较,第一次完毕,最小值出现在了0索引。同理,其他的元素就可以排好。

public static void selectSort(int[] arr) {for(int x=0; x<arr.length-1; x++) {for(int y=x+1; y<arr.length; y++) {if(arr[y] < arr[x]) {int temp = arr[x];arr[x] = arr[y];arr[y] = temp;}}}}

(2)查找
        二分查找(折半查找)
            针对数组有序的情况(千万不要先排序,在查找)

 public static int binarySearch(int[] arr,int value) {int min = 0;int max = arr.length-1;int mid = (min+max)/2;while(arr[mid] != value) {if(arr[mid] > value) {max = mid - 1;}else if(arr[mid] < value) {min = mid + 1;}if(min > max) {return -1;}mid = (min+max)/2;}return mid;}

刘意JavaSE 学习笔记 Day12-Day14——字符串API(String/StringBuffer/StringBuilder...)相关推荐

  1. 刘意JavaSE 学习笔记——总纲

    开始学习JavaSE了,记录下自己学习的进程. 学习大纲 1 开发环境配置 day01 配置 2 基础语法(基本差不多,看一下就好) day02 命名规则,进制转换 day03 运算符,if语句 da ...

  2. 浅谈 Java 字符串(String, StringBuffer, StringBuilder)

    我们先要记住三者的特征: String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全) 一.定义 查看 API 会发现,String ...

  3. JAVASE学习笔记 Java中的常用类--StringBuffer类、StringBuilder类

    1.StringBuffer类概述 在Java中我们如果对字符串进行拼接操作,每次拼接都能构建一个新的String对象,这样操作既费时有浪费时间,StringBuffer类就能解决这个问题. Stri ...

  4. python复制指定字符串_python3.4学习笔记(十五) 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)...

    python3.4学习笔记(十五) 字符串操作(string替换.删除.截取.复制.连接.比较.查找.包含.大小写转换.分割等) python print 不换行(在后面加上,end=''),prin ...

  5. 重拾JavaSE学习笔记

    重拾JavaSE学习笔记 1.常用DOS命令 2.了解Java 2.1 .java特性 2.2.JDK .JRE.JVM 2.3.java的加载和执行 3.开发环境搭建 3.1.安装jdk 3.2.配 ...

  6. 【JavaSE学习笔记】

    JavaSE学习笔记 一.java的基本语法 变量运算规则 编码情况1中l后面没有加L,默认是int变量 编码情况2中b1=b+1中的1默认是int型变量,会出错 string类型 string里面可 ...

  7. JavaSE学习笔记(持续更新)

    这里写目录标题 JavaSE学习笔记(持续更新) Java跨平台原理与核心机制 1.跨平台原理: 2.两种核心机制: JDK11的安装流程 Java程序开发的三个步骤(无编辑器版) Eclipse安装 ...

  8. Python学习笔记D4(字符串和序列)

    Python学习笔记D4(字符串和序列) 序列 list()作为一个方法存在两个形态,一个有参数一个没参数 list():不带参数,返回一个空的列表 list([iterable]):返回一个迭代器 ...

  9. javaSE学习笔记01 入门篇

    javaSE学习笔记01 入门篇 java语言概述 Java背景知识 java是 美国 sun 公司 在1995年推出的一门计算机高级编程语言. java早期称为Oak(橡树),后期改名为Java. ...

  10. JavaSE学习笔记-08

    包装类 Wrapper 八大包装类继承体系图   虚线表示实现接口,实线表示继承父类..... 包装类和基本数据类型的转换 基本数据类型不是对象,然而包装类是对象..... 演示装箱和拆箱: jdk5 ...

最新文章

  1. Nginx 常用配置清单
  2. 11.6 java中jar包使用
  3. oracle中作业无法执行,Oracle运行JOB报ORA-27492:无法运行作业
  4. c语言字符串的计算方法
  5. 【并查集】家谱(luogu 2814/ssl 2343)
  6. Go实现查找目录下(包括子目录)替换文件内容
  7. Vue-cli 项目优化归纳(打包、源码、用户体验)
  8. cuSPARSE库:(十五)已经弃用的函数(1)
  9. Python脚本生成单个EXE文件
  10. java 转 utp-8,utf8和不同的utp8有何不同?
  11. 老板子华硕A7N8X-X
  12. 如何做跟进客户关系维护PPT课件?
  13. 鲁迅《狂人日记》全文
  14. mysql begin tran_SQL事务用法begin tran,commit tran和rollback tran的用法
  15. 国外哪个服务器最稳定,合适的国外服务器有什么选择技巧
  16. 利用IDM下载QQ群文件
  17. android高仿小米时钟,Android仿小米时钟效果
  18. 2009年最新搞笑语录
  19. 嵌入式学习笔记——ADC模数转换器
  20. 程序里的国际时区和夏令时

热门文章

  1. app国际化多语言strings.xml 与 Excel 互相转换的工具,支持iOS和Android
  2. 华为RDPM项目管理方法及文档免费下载
  3. SCSA 模拟题 知识点 (一)
  4. C语言项目源码,C语言源代码大全(2021最新)!
  5. lodop打印控件——前端学习笔记
  6. VisualStudio开发工具中的C#主流控件属性及事件汇总(菜鸟必备)
  7. IDEA 如何根据代码自动生成类图
  8. 一个简单的数字幸运抽奖小程序
  9. Linux执行sql文件
  10. C语言入门(15道经典题目)