Java基础(七)
字符串String类
字符串的两个问题
构造方法
字符串池
字符串的内容不可变
比较方法
练习:模拟登陆
练习:模拟登陆(限制重试次数)
替换方法(敏感词过滤)
如果希望将字符串当中指定的部分进行替换操作,需要使用:
public String replace(CharSequence oldStr,CharSequence newStr):
将字符串当中出现的所有oldStr部分,替换成为指定的newStr.
参数oldStr代表需要被替换的老字符串部分
参数newStr代表需要替换成为新的字符串部分
参数类型CharSequence现阶段可以简单地认为就是字符串String.
注意:
字符串的内容不会发生改变的,所以replace方法的返回值结果是一个全新的字符串.
切割方法
集合
概述
集合与数组类似,也是一种引用类型,也可以存放很多个数据.但是数组的长度不可改变,而集合的长度是可变的,所以使用更加方便.
集合包含有很多种:ArrayList , HashSet , LinkedList , HashMap……
集合有很多种,现阶段我们学习最为简单的java.util.ArrayList集合.
构造方法
Java.util.ArrayList是一个类,使用起来就有三个步骤:
1. 导包
Import java.util.ArrayList
2. 创建
类名称 对象名 = new 类名称();
ArrayList常用的构造方法:
Public ArrayList(); 默认无参数的构造方法.
ArrayList<泛型> list = new ArrayList<>();
泛型:也就是集合当中存放的全都是统一的什么类型的数据.
注意:泛型只能是引用类型,不能是基本类型.
3. 使用
常用方法
如何使用已经创建好的集合呢?常用的方法有三个:
1. 添加元素
public boolean add(E element):向集合当中添加一个元素,参数是被添加的元素,而返回值一定是true值代表成功。
2. 获取元素
public E get(int index):从集合当中获取一个元素,参数是元素索引(从0开始),返回值就是获取得到的元素对象。
3. 获取长度
public int size():获取集合的元素个数,集合的长度,得到int数字。
注意事项:
ArrayList集合直接打印对象名称,得到的不是地址值,而是内容,格式和数组类似。
原因:是因为ArrayList这个类其中的tostring方法有特殊处理。(今后学习。)
对于Arraylist集合来说,添加的add动作一定是成功的,返回值必然是true.
但是对于其他的集台来说,add万法就不一定成功了.
练习:遍历集合中的字符串
存储基本类型数据
集合的泛型必须是引用类型,不能是基本类型.如果一定要存储基本类型,需要使用对应的包装类(都位于java.lang包下).基本类型与包装类的对应关系如下:
l byte Byte
l short Short
l int Integer
l long Long
l float Float
l double Double
l char Character
l boolean Boolean
从JDK1.5开始,基本类型可以和对应的包装类进行自动装箱拆箱.
装箱: 基本类型 -->> 包装类
拆箱: 包装类 -->> 基本类型
集合存储自定义类型对象
集合可以存放任何一种引用类型,包含我们自定义的Person类对象.
练习:王者荣耀阵容展示
创建一个Hero类代表一位英雄,其中包含有名字和战斗力两个成员变量.使用一个集合存储5位英雄,然后遍历集合展示所有英雄的信息.
练习:王者荣耀平均战斗力
仍然是一个集合当中存储5个英雄对象,但不要求进行遍历,而是进行整个队伍平均战斗力的计算.
知识总结
1. 只要是字符串,必然就是对象.
2. 如何创建字符串
a) 直接赋值双引号,也是一个字符串对象.
b) 可以直接通过new关键字来调用String的构造方法:
i. public String (char[] array);根据字符数组来创建字符串.
ii. Public String (char[] array,int offset,int count);根据字符数组当中的一部分来创建字符串.
3. 字符串池:是为了节省内存,重复利用相同的字符串.
a) 凡是双引号直接写上的字符串,默认就在池中.
b) 凡是new出来的字符串,默认不在池中.
4. 字符串的内容永不可变.每当你觉得好像是应该变了,必然是创建了一个新的字符串.
5. 字符串的比较方法:
a) public Boolean equals(Object obj);严格区分大小写.
b) public Boolean equalslgnoreCase(String str);忽略大小写
6. 字符串的替换方法:
a) public String replace(CharSequence oldStr,CharSequence newStr)
7. 字符串的切割方法:
Public String[] split(String regex);
注意:不要使用英文句点作为切分的标识,如果非要用英文句点,应该写\\
8. 集合:和数组类似,但是主要区别就是集合的长度可变,数组的长度不可变.
9. 如何创建一个ArrayList集合?
a) 导包: import java.util.ArrayList
b) 创建: ArrayList<泛型>list = new ArrayList<>();
c) 泛型: 集合当中存储的是统一的什么类型.
d) 注意: 泛型只能使用引用类型,不能使用基本类型.
10. 如何使用ArrayList集合,常用方法:
a) 添加: public Boolean add(E element);
b) 获取: public E get(int index);
c) 长度: public int size();
11. 如何让集合存储基本类型:使用包装类.记住两个特例(int对应Integer,char对应的Character),其它都是首字母大写即可.
12. 集合能否存储自定义的类型,例如Person?
答:可以.集合可以存储任何一种引用数据类型.
Java基础(七)的更多相关文章
- Java基础七-正则表达式
Java基础七-正则表达式 一.定义: 特定的符号的组合 二.作用: 用于操作字符串数据 三.优缺点 简化代码,但是阅读性差 四.引入 4.1 问题 判断一个号码是否是QQ号? 不是零开头 6-15位 ...
- java基础七 [图形用户接口](阅读Head First Java记录)
到目前为止我们接触的都是Java的命令行,但是为了让用户使用,必须有图形化界面,所以这章主要讲的是怎么使用GUI(图形用户接口) 创建一个GUI:javax.swing.* 本章讲的布局相关内容都 ...
- java基础(七)-----深入剖析Java中的装箱和拆箱
本文主要介绍Java中的自动拆箱与自动装箱的有关知识. 基本数据类型 基本类型,或者叫做内置类型,是Java中不同于类(Class)的特殊类型.它们是我们编程中使用最频繁的类型. Java是一种强类型 ...
- Java基础七(Eclipse工具)
今日内容介绍1.Eclipse开发工具2.超市库存管理系统 ###01Eclipse的下载安装 * A: Eclipse的下载安装 * a: 下载 * http://www.eclipse.org ...
- java基础(七) java四种访问权限
引言 Java中的访问权限理解起来不难,但完全掌握却不容易,特别是4种访问权限并不是任何时候都可以使用.下面整理一下,在什么情况下,有哪些访问权限可以允许选择. 一.访问权限简介 访问权限控制: ...
- Java基础(七)--Exception异常处理
发现错误的理想时机是程序运行之前(编译期),然后不太现实,很多异常无法被发现(特别是业务上的数据),需要在运行时解决. 错误恢复机制保证代码健壮性的方式,异常处理在程序中很常见,也是必须的,必须考虑有 ...
- java基础(七)之子类实例化
知识点;1.生成子类的过程2.使用super调用父类构造函数的方法 首先编写3个文件. Person.java class Person{ String name; int age; Person() ...
- java基础(七)--键盘输入
一.示例 package cnblogs; import java.util.Scanner; public class TestBase07IO { public static void main( ...
- 重学JAVA基础(七):线程的wait、notify、notifyAll、sleep
/** * 测试thread的wait notify notifyAll sleep Interrupted * @author tomsnail * @date 2015年4月20日 下午3:20: ...
随机推荐
- Word:不显示图片 + 清空“最近使用的文档”列表
造冰箱的大熊猫,本文适用于Microsoft Office 2007@cnblogs 2019/3/4 1.Word突然不显示嵌在文本中的图片,只能看到一个空的图片框 解决办法: 1)点击Word左 ...
- Ubuntu:电源管理
本文适用于Ubuntu 16.04,造冰箱的大熊猫@cnblogs 2018/3/4 在Ubuntu 16.04中,与电源管理相关的选项位于System Settings下的Power对话框中. 要启 ...
- js 获取 touch length
window.addEventListener("touchstart", touchHandler, false); function touchHandler(event){ ...
- 使用A* Pathfinding Project的一些心得
最近在游戏开发中要做寻路.首选果断就是Unity3D自带的寻路啦.方便稳定,基本功能都能满足.我们的需求也不复杂,就是一个英雄在不同的地图中探索.但是介于一个比较恶心的问题,果断放弃了它.所以,说A* ...
- Java日志系统---Logger之简单入门
Java 中自带的日志系统,今天抽空了解了一点,算是入了门,所以将自己的一些心得记录下来,以备日后查看,有兴趣的朋友,看到此文章,觉得有错误或需要添加的地方,请在下方评论留言,大家可以共同进步,谢谢: ...
- HTTP中GET与POST的区别颠覆式的理解
关于http中的get和post你轻轻松松的给出了一个“标准答案”: GET在浏览器回退时是无害的,而POST会再次提交请求. GET产生的URL地址可以被Bookmark,而POST不可以. GET ...
- vue-lazyload 的vue 懒加载的使用
vue-lazyload vue 图片懒加载的使用 下载 vue-lazyload npm i vue-lazyload -S 使用 vue-lazyload 在 src 下面的 main.js 的文 ...
- koa 基础(二十)nodejs 操作mongodb数据库 --- 新增数据
1.app.js /** * nodejs 操作mongodb数据库 * 1.安装 操作mongodb * cnpm install mongodb --save * 2.引入 mongodb 下面的 ...
- 一、基础篇--1.1Java基础-Java运算符优先级
在一个表达式中可能包含多个有不同运算符连接起来的.具有不同数据类型的数据对象:由于表达式有多种运算,不同的结合顺序可能得出不同结果甚至出现错误运算错误,因为当表达式中含多种运算时,必须按一定顺序进行结 ...
- ccf 201612-3 权限查询
ccf 201612-3 权限查询 解题思路: 建立一个二维矩阵存储权限和角色 还差30分emmm #include<iostream> #include<cstring> ...