Java语言学习day30--8月5日
###10String类的其他方法 
	* A:String类的其他方法
		* a: 方法介绍
			* int length(): 返回字符串的长度
			* String substring(int beginIndex,int endIndex): 获取字符串的一部分
			* String substring(int beginIndex): 获取字符串的一部分
			* boolean startsWith(String prefix): 判断一个字符串是不是另一个字符串的前缀,开头
			* boolean endsWith(String prefix): 判断一个字符串是不是另一个字符串的后缀,结尾
			* boolean contains (String s): 判断一个字符串中,是否包含另一个字符串
			* int indexOf(char ch):  查找一个字符,在字符串中第一次出现的索引,被查找的字符不存在,返回-1
			* byte[] getBytes(): 将字符串转成字节数组,此功能和String构造方法相反,byte数组相关的功能,查询编码表
			* char[] toCharArray(): 将字符串转成字符数组,功能和构造方法相反
			* boolean equals(Object obj): 方法传递字符串,判断字符串中的字符是否完全相同,如果完全相同返回true
			* boolean equalsIgnoreCase(String s): 传递字符串,判断字符串中的字符是否相同,忽略大小写			
			
		* b: 案例代码
		
			public class StringDemo4 {
				public static void main(String[] args) {
					function_9();
				}
				/*
				 *  boolean equals(Object obj)
				 *  方法传递字符串,判断字符串中的字符是否完全相同,如果完全相同返回true
				 *  
				 *  boolean equalsIgnoreCase(String s)
				 *  传递字符串,判断字符串中的字符是否相同,忽略大小写
				 */
				public static void function_9(){
					String str1 = "Abc";
					String str2 = "abc";
					//分别调用equals和equalsIgnoreCase
					boolean b1 = str1.equals(str2);
					boolean b2 = str1.equalsIgnoreCase(str2);
					System.out.println(b1);
					System.out.println(b2);
				}
				
				/*
				 * char[] toCharArray() 将字符串转成字符数组
				 * 功能和构造方法相反
				 */
				public static void function_8(){
					String str = "itcast";
					//调用String类的方法toCharArray()
					char[] ch = str.toCharArray();
					for(int i = 0 ; i < ch.length ; i++){
						System.out.println(ch[i]);
					}
				}
				
				/*
				 *  byte[] getBytes() 将字符串转成字节数组
				 *  此功能和String构造方法相反
				 *  byte数组相关的功能,查询编码表
				 */
				public static void function_7(){
					String str = "abc";
					//调用String类方法getBytes字符串转成字节数组
					byte[] bytes = str.getBytes();
					for(int i = 0 ; i < bytes.length ; i++){
						System.out.println(bytes[i]);
					}
				}
				
				/*
				 *  int indexOf(char ch)
				 *  查找一个字符,在字符串中第一次出现的索引
				 *  被查找的字符不存在,返回-1
				 */
				public static void function_6(){
					String str = "itcast.cn";
					//调用String类的方法indexOf
					int index = str.indexOf('x');
					System.out.println(index);
				}
				
				/*
				 *  boolean contains (String s)
				 *  判断一个字符串中,是否包含另一个字符串
				 */
				public static void function_5(){
					String str = "itcast.cn";
					//调用String类的方法contains
					boolean b =str.contains("ac");
					System.out.println(b);
				}
				
				/*
				 * boolean endsWith(String prefix)
				 * 判断一个字符串是不是另一个字符串的后缀,结尾
				 * Demo.java
				 *     .java
				 */
				public static void function_4(){
					String str = "Demo.java";
					//调用String类方法endsWith
					boolean b = str.endsWith(".java");
					System.out.println(b);
				}
				
				/*
				 * boolean startsWith(String prefix)  
				 * 判断一个字符串是不是另一个字符串的前缀,开头
				 * howareyou
				 * hOw
				 */
				  public static void function_3(){
					  String str = "howareyou";
					  //调用String类的方法startsWith
					  boolean b = str.startsWith("hOw");
					  System.out.println(b);
				  }
				
				/*
				 *  String substring(int beginIndex,int endIndex) 获取字符串的一部分
				 *  返回新的字符串
				 *  包含头,不包含尾巴
				 *  
				 *  String substring(int beginIndex)获取字符串的一部分
				 *  包含头,后面的字符全要
				 */
				public static void function_2(){
					String str = "howareyou";
					//调用String类方法substring获取字符串一部分
					str= str.substring(1, 5);
					System.out.println(str);
					
					String str2 = "HelloWorld";
					str2 = str2.substring(1);
					System.out.println(str2);
				}
				
				/*
				 *  int length() 返回字符串的长度
				 *  包含多少个字符
				 */
				public static void function(){
					String str = "cfxdf#$REFewfrt54GT";
					//调用String类方法length,获取字符串长度
					int length = str.length();
					System.out.println(length);
				}
			}
				
###11String类练习
	* A: 获取指定字符串中,大写字母、小写字母、数字的个数
		* a: 题目分析
			* 为了统计大写字母、小写字母、数字的个数。创建3个计数的变量。
			* 为了获取到字符串中的每个字符,进行字符串的遍历,得到每个字符。
			* 对得到的字符进行判断,如果该字符为大写字母,则大写字母个数+1;如果该字符为小写字母,则小写字母个数+1;如果该字符为数字,则数字个数+1。
			* 显示大写字母、小写字母、数字的个数
* b: 解题步骤
			* 略
		* 案例代码
			public class StringTest {
				public static void main(String[] args) {
					getCount("A%A3eBr1FFy");					
				}
				
				/*
				 * 获取指定字符串中,大写字母、小写字母、数字的个数。
				 * 思想:
				 *   1. 计数器,就是int变量,满足一个条件 ++
				 *   2. 遍历字符串, 长度方法length() + charAt() 遍历
				 *   3. 字符判断是大写,是小写,还是数字
				 */
				public static void getCount(String str){
					//定义三个变量,计数
					int upper = 0;
					int lower = 0;
					int digit = 0;
					//对字符串遍历
					for(int i = 0 ; i < str.length() ; i++){
						//String方法charAt,索引,获取字符
						char c = str.charAt(i);
						//利用编码表 65-90  97-122  48-57
						if(c >='A' && c <=90){
							upper++;
						}else if( c >= 97 && c <= 122){
							lower++;
						}else if( c >= 48 && c <='9'){
							digit++;
						}
					}
					System.out.println(upper);
					System.out.println(lower);
					System.out.println(digit);
				}
			}
###12String类练习_2
	* A: 将字符串中,第一个字母转换成大写,其他字母转换成小写,并打印改变后的字符串。
		* a: 题目分析
			* 把字符串分为两个部分,第一部分为字符串中第一个字母,第二部分为剩下的字符串。
			* 把第一部分字符串转换成大写字母,把第二部分字符串转换成小写字母
			* 把两部分字符串连接在一起,得到一个完整的字符串
		* b: 解题步骤
			* 略
		* C: 案例代码
			public class StringTest {
				public static void main(String[] args) {
					
					System.out.println(toConvert("aBc5%4dEF"));
					
				}
				
				/*
				 *  将字符串的首字母转成大写,其他内容转成小写
				 *  思想:
				 *    获取首字母, charAt(0)  substring(0,1)
				 *    转成大写 toUpperCase()
				 *    
				 *    获取剩余字符串, substring(1)  toLowerCase()
				 */
				public static String toConvert(String str){
					//定义变量,保存首字母,和剩余字符
					String first = str.substring(0,1);
					String after = str.substring(1);
					//调用String类方法,大写,小写转换
					first = first.toUpperCase();
					after = after.toLowerCase();
					return first+after;
				}
			}
###13String类练习_3
	* A: 查询大字符串中,出现指定小字符串的次数
		* a: 题目分析
			* 在大串中,查找小串出现的位置,出现了就次数+1
			* 在上次小串出现位置的后面继续查找,需要更改大串的内容为上次未查询到的字符串。
			* 回到第一步,继续查找小串出现的位置,直到大串中查询不到小串为止
		* b: 解题步骤
			* 略
		* C: 案例代码	
			package cn.itcast.demo02;
public class StringTest {
				public static void main(String[] args) {		
					System.out.println(getStringCount("hellojava,nijavahaojava,javazhenbang", "java"));
				}
				/*
				 *  获取一个字符串中,另一个字符串出现的次数
				 *  思想:
				 *    1. indexOf到字符串中到第一次出现的索引
				 *    2. 找到的索引+被找字符串长度,截取字符串
				 *    3. 计数器++
				 */
				public static int getStringCount(String str, String key){
					//定义计数器
					int count = 0;
					//定义变量,保存indexOf查找后的索引的结果
					int index = 0;
					//开始循环找,条件,indexOf==-1 字符串没有了
					while(( index = str.indexOf(key) )!= -1){
						count++;
						//获取到的索引,和字符串长度求和,截取字符串
						str = str.substring(index+key.length());
					}
					return count;
				}
			}
###14StringBuffer特点可变字符数组
	* A:StringBuffer类概述
		* 通过JDK提供的API,查看StringBuffer类的说明
		* 线程安全的可变字符序列 
		* 底层采用字符数组实现,初始容量为16
	* B:StringBuffer和String的区别
		* String是一个不可变的字符序列
		* StringBuffer是一个可变的字符序列
###15StringBuffer类的方法
	* A: StringBuffer类的方法
		* a: 方法介绍
			* StringBuffer append(), 将任意类型的数据,添加缓冲区
				*  append 返回值,写return this
				*  调用者是谁,返回值就是谁
			* delete(int start,int end): 删除缓冲区中字符
				*  开始索引包含,结尾索引不包含
			* insert(int index, 任意类型): 将任意类型数据,插入到缓冲区的指定索引上
			* replace(int start,int end, String str): 将指定的索引范围内的所有字符,替换成新的字符串
			* reverse(): 将缓冲区中的字符反转
			* String toString(): 继承Object,重写toString()
				*   将缓冲区中的所有字符,变成字符串
		* b: 案例代码
			public class StringBufferDemo {
				public static void main(String[] args) {
					function_5();
				}
				/*
				 *  StringBuffer类的方法
				 *   String toString() 继承Object,重写toString()
				 *   将缓冲区中的所有字符,变成字符串
				 */
				public static void function_5(){
					StringBuffer buffer = new StringBuffer();
					buffer.append("abcdef");
					buffer.append(12345);
					
					//将可变的字符串缓冲区对象,变成了不可变String对象
					String s = buffer.toString();
					System.out.println(s);
				}
				
				/*
				 *  StringBuffer类的方法
				 *    reverse() 将缓冲区中的字符反转
				 */
				public static void function_4(){
					StringBuffer buffer = new StringBuffer();
					buffer.append("abcdef");
					
					buffer.reverse();
					
					System.out.println(buffer);
				}
				
				/*
				 *  StringBuffer类方法
				 *    replace(int start,int end, String str)
				 *    将指定的索引范围内的所有字符,替换成新的字符串
				 */
				public static void function_3(){
					StringBuffer buffer = new StringBuffer();
					buffer.append("abcdef");
					
					buffer.replace(1, 4, "Q");
					
					System.out.println(buffer);
				}
				
				/*
				 *  StringBuffer类方法 insert
				 *    insert(int index, 任意类型)
				 *  将任意类型数据,插入到缓冲区的指定索引上
				 */
				 public static void function_2(){
					 StringBuffer buffer = new StringBuffer();
					 buffer.append("abcdef");	 
					 
					 buffer.insert(3, 9.5);
					 System.out.println(buffer);
				 }
				
				/*
				 * StringBuffer类方法
				 *   delete(int start,int end) 删除缓冲区中字符
				 *   开始索引包含,结尾索引不包含
				 */
				public static void function_1(){
					StringBuffer buffer = new StringBuffer();
					buffer.append("abcdef");
					
					buffer.delete(1,5);
					System.out.println(buffer);
				}
				
				/*
				 *  StringBuffer类方法
				 *   StringBuffer append, 将任意类型的数据,添加缓冲区
				 *   append 返回值,写return this
				 *   调用者是谁,返回值就是谁
				 */
				public static void function(){
					StringBuffer buffer = new StringBuffer();
					//调用StringBuffer方法append向缓冲区追加内容
					buffer.append(6).append(false).append('a').append(1.5);
					System.out.println(buffer);
				}
			}
###16StringBuilder类
	* A:StringBuilder的概述
		* 通过查看API了解一下StringBuilder类
	* B:面试题
		* String,StringBuffer,StringBuilder的区别
			* StringBuffer和StringBuilder的区别
				* StringBuffer是jdk1.0版本的,是线程安全的,效率低
				* StringBuilder是jdk1.5版本的,是线程不安全的,效率高
* String和StringBuffer,StringBuilder的区别
				* String是一个不可变的字符序列
				* StringBuffer,StringBuilder是可变的字符序列
###17StringBuffer类案例拼接数组
	* A: StringBuffer类案例拼接数组
		* a: 题目分析
			* 定义StringBuffer对象
			* 遍历数组,按照格式要求拼接处新的字符串,追加到StringBuffer容器中
			* 将StringBuffer中的内容以String的形式返回
		* b: 解题步骤
			* 略
		* C: 案例代码	
			public class StringBufferTest {
				public static void main(String[] args) {
					int[] arr = {4,1,4,56,7,8,76};
					System.out.println(toString(arr));
				}
			   /*
				* int[] arr = {34,12,89,68};将一个int[]中元素转成字符串 
				* 格式 [34,12,89,68]
				* String s = "["
				* 数组遍历
				*   s+= arr[i];
				*  s+"]"
				*  StringBuffer实现,节约内存空间, String + 在缓冲区中,append方法
				*/
				public static String toString(int[] arr){
					//创建字符串缓冲区
					StringBuffer buffer = new StringBuffer();
					buffer.append("[");
					//数组遍历
					for(int i = 0 ; i < arr.length;i++){
						//判断是不是数组的最后一个元素
						if(i == arr.length-1){
							buffer.append(arr[i]).append("]");
						}else{
							buffer.append(arr[i]).append(",");
						}
					}
					return buffer.toString();
				}
			}
Java语言学习day30--8月5日的更多相关文章
- Java语言学习day01--6月28日
		Java语言学习day01一:Java概述 1.Java语言发展史 任职于太阳微系统的 詹姆斯·高斯林 等人于1990年代初开发Java语言的雏形,最初被命名为 Oak ,目标设置在 家用电器等小型系 ... 
- Java语言学习day02--6月29日
		Java语言学习day02###01常用的DOS命令 * A: 常用的DOS命令 * a: 打开Dos控制台 * win+r--cmd--回车 * b: 常用dos命令 * cd.. : 退回到上一级 ... 
- Java Calendar获取年、月、日、时间
		Java Calendar获取年.月.日.时间 Calendar c = Calendar.getInstance(TimeZone.getTimeZone("GMT+08:00" ... 
- Java语言学习day32--8月07日
		###07正则表达式邮箱地址验证 * A: 正则表达式邮箱地址验证 * a: 案例代码 public class RegexDemo2 { public static void main(String ... 
- Java语言学习day33--8月8日
		今日内容介绍1.基本类型包装类2.System类3.Math类4.Arrays类5.大数据运算 ###01基本数据类型对象包装类概述 *A:基本数据类型对象包装类概述 *a.基本类型包装类的产生 在实 ... 
- Java语言学习day15--7月21日
		今日内容介绍1.Eclipse开发工具2.超市库存管理系统 ###01Eclipse的下载安装 * A: Eclipse的下载安装  * a: 下载 * http://www.eclipse.org ... 
- Java语言学习总结 扩展篇 DateFormat类
		DateFormat类 java.text .DateFormat 是 日期/时间格式化子类的抽象类,我们通过这个类可以帮我们完成日期和文本之间的转换:也就是可以在Date对象与String对象之间进 ... 
- python学习 day21 (3月28日)----(抽象类 多态 nametuple dump)
		不要因为走的路太久了,而忘记了为了什么而出发. 提前作准备了吗?把思维导图的东西做了吗? 和工作了几年的人,相比,是不是相同的水平,如果要写简历的话. 一边学习,一边复习. 小就是大,少就是多. 1. ... 
- java语言学习笔记1
		最近也在春节的节假日里,总是会有各种各样的事情出现,没有很完整的时间来学习java以及其他方面的知识. 从昨天开始有了完整的学习体系,我去娄老师推荐的极客学院网站开始学习java语言的语法.在假期之初 ... 
- Python 学习日志9月20日
		9月20日 周三 多大年龄了,还活得像个小孩.——急什么,人生又不长. 你习惯了思考宇宙星辰,一百年真的不长,一生也就不那么长,许多人的价值观念你也就无法理解.同样,许多人也无法理解你的价值观念,感兴 ... 
随机推荐
- 详解数据库三种删除方法: delete drop truncate
			Delete Delete :删除数据表中的行(可以删除某一行,也可以在不删除数据表的情况下删除所有行). 删除某一行:Delete from 数据表名称 where 列名称=值: 删除所有行:Del ... 
- 常用正则表达式与python中的re模块
			正则表达式是一种通用的字符串匹配技术,不会因为编程语言不一样而发生变化. 部分常用正则表达式规则介绍: . 匹配任意的一个字符串,除了\n * 匹配任意字符串0次或者任意次 \w 匹配字母.数字.下划 ... 
- CF1430F Realistic Gameplay (贪心+DP)
			朴素做法暴力DP,O(nk)过不去... 1 #include <cmath> 2 #include <cstdio> 3 #include <cstring> 4 ... 
- error C4996: 'std::_Copy_impl'
			以下代码段在VS2008编译可以通过,只是会提示不安全: std::vector<unsigned char> fileData ="asdfsfsfsfsdf";// ... 
- 模糊查询like语句该怎么写?
			第1种:在Java代码中添加sql通配符. string wildcardname = "%smi%"; list<name> names = mapper.selec ... 
- Springmvc入门基础(六) ---拦截器应用demo
			1.拦截器定义 Spring Web MVC 的处理器拦截器类似于Servlet 开发中的过滤器Filter,用于对处理器进行预处理和后处理. 2.拦截器demo demo需求: 拦截用户请求,判断用 ... 
- RocketMQ实现分布式事务
			相关文章:http://www.uml.org.cn/zjjs/201810091.asp(深入理解分布式事务,高并发下分布式事务的解决方案) 三种分布式事务: 1.基于XA协议的两阶段提交 2.消息 ... 
- Linux编译安装软件常见问题及排查
			1.配置cmake参数时提示: The C compiler identification is unknown. The CXX compiler identification is unknown ... 
- openldap 资料
			LDAP概念和原理介绍 相信对于许多的朋友来说,可能听说过LDAP,但是实际中对LDAP的了解和具体的原理可能还比较模糊,今天就从"什么是LDAP"."LDAP的主要产品 ... 
- MATLAB设计模糊控制器并用simulink仿真
			一.设计模糊控制器1.1 创建项目文件夹在此路径如图 1.2 打开MATLAB打开MATLAB R2012a切换当前目录为上一步路径,如图 1.3 设计模糊控制器打开模糊控制器设计对话框 根据模糊控制 ... 
