黑马程序员Java基础__String类及包装类
来源:互联网 发布:大数据云计算人工智能 编辑:程序博客网 时间:2024/06/09 20:52
一)字符串的获取:
1、int length() ---> length方法返回给定字符串的长度。
2、 char charAt(int index) ---> 根据位置获取某个字符串。
3、 int indexOf(int ch) ---> 根据字符串获取该字符在字符串中的位置。返回字符串中第一次出现的位置。
4、 int indexOf(int ch,int fromIndex) ---> 从fromIndex指定位置开始。获取在字符串中的位置。
5、 int lastIndexOf(int ch) ---> 反向索引一个字符出现的位置,此位置的角标仍为从左数的角标。
二)字符串的判断:
1、 boolean contains(str) ---> 判断字符串中是否包含一个子串。
2、 boolean isEmpty() ---> 判断字符串中是否有内容,原理就是判断字符串长度是否为0。
3、 boolean startWith() ---> 判断字符串是否以指定内容开头。
4、 boolean endWith() ---> 判断字符串是否以指定内容结尾。
5、 boolean equals() ---> 判断两个字符串的内容是否相同。
6、 boolean equalsIgnoreCase() ---> 判断两个字符串的内容是否相同,忽略大小写。
三)字符串的转换:
1、将字符数组转化成字符串:
构造函数:String(char[]) 及 String(char[] ch,int offset,int count)。
2 、char[] toCharArray() ---> 将字符串转化成数组。
3、字符串和字节数组间的转换,同1和2,参数为byte[]型值。
String(byte[] b);和String(byte[] b,int offset,int count)
byte[] getByte[] ---> byte[] b = str.getByte();
4、static String valueOf(3) ---> (专业写法)将基本数据类型转换成字符串。
四)字符串的“更改”:
1、String replace(oldchar,newchar) ---> 字符的替换。
2、String toUpperCase() 和 String toLowerCase() ---> 将字符串转为大写或小写。
3、String trim() ---> 将字符串两端的多个空格去掉。
4、String[] split(regex) ---> 字符串的切割。
5、int compareTo(String str) ---> 对两个字符进行自然顺序的比较。
五)substring(int a,int b) ---> 获得字符串的子串:
String类的方法substring可以从一个较大的字符串提取出一个子串。
方法的中a和b分别代表获取的字符串的起始位置(从哪个位置开始获取,包含此位置)和终止位置(不包括b)。
六)intern() ---> 该方法返回是始终都是StringPool中的对象。
示例1:
class StringMethodDemo { public static void main(String[] args) { method_7(); } public static void method_7() { String s = " Hello Java "; sop(s.toLowerCase());//将字符串转成小写。 sop(s.toUpperCase());//将字符串转成大写。 sop(s.trim());//将字符串两端的多个空格去除。 String s1 = "a1c"; String s2 = "aaa"; sop(s1.compareTo(s2));//比较 } public static void method_6() { String s = "abcdef";//获取字符串中的一部分。 sop(s.substring(2));//从指定位置开始到结尾。如果角标不存在,会出现字符串角标越界异常。 sop(s.substring(2,4));//包含头,不包含尾。s.substring(0,s.length()); } public static void method_5() { String s = "zhagnsa,lisi,wangwu"; String[] arr = s.split(",");//切割 for(int x = 0; x<arr.length; x++) { sop(arr[x]); } } public static void methoe_4() { String s = "hello java"; //String s1 = s.replace('q','n');//如果要替换的字符不存在,返回的还是原串。 String s1 = s.replace("java","world");//替换 sop("s="+s); sop("s1="+s1); } public static void method_3() { char[] c={'a','v','b','s'}; String s=new String(c); sop(s);//将字符数组转换成字符串. String s1="abcederd"; char[] c1=s1.toCharArray(); for(int x=0;x<c1.length;x++) { sop(c1[x]); }//将字符串转换成字符数组 } public static void method_2() { String str="ArrayDemo.java"; sop(str.startsWith("Array"));//判断字符串是否是以指定内容开头 sop(str.endsWith(".java"));//判断字符串是否是以指定内容结尾。 sop(str.contains("Demo"));//判断字符串中是否包含某一个子串。 sop(str.isEmpty());// 字符中是否有内容,原理就是判断长度是否为0. sop(str.equalsIgnoreCase("arraydemo.java"));//判断内容是否相同,并忽略大小写。 } public static void method_1() { String str="adbcdef"; sop(str.length());//获取字符串的长度 sop(str.charAt(3));//根据位置获取位置上某个字符。 sop(str.indexOf('d',3));//从fromIndex指定位置开始,获取ch在字符串中出现的位置。 } public static void sop(Object obj) { System.out.println(obj); } }
三、构造字符串
----StringBuilder:是线程不同步的,相对效率更高,但是不安全
----StringBuffer: 是线程同步的,相对效率较低,但安全。
二)StringBuilder特点:
第一、StringBuilder的长度是可变的,也可以通过length()的方法求当前对象的长度。
第二、可以直接操作多个数据类型。可将如int、double、char、boolean等类型的数据作为字符串相连接存入容器中。
第三、最终会通过toString方法变为字符串。
三)StringBuffer的操作方法:
1、存储
StringBuffer append() --->将指定数据作为参数添加到已有数据结尾处。
StringBuffer insert(index,数据) --->可以将数据插入到指定index位置。
2、删除
StringBuffer delete(start,end) --->删除缓冲区中的数据,包含start,不包含end。
StringBuffer deleteCharAt(index) --->删除指定位置的字符。
3、获取
char charAt(int index) ---> 获取指定位置index上的字符。
int indexOf(String str) ---> 获取指定字符串的位置。
int lastIndexOf(String str) ---> 反向获取指定字符串的位置。
nt length() ---> 获取字符串的长度。
4、修改
StringBuffer replace(start,end,string) --->将start到end(不包含end)位置上的字符串更改为指定字符串string。
void setCharAt(int index, char ch) ---> 替换指定位置上的字符为指定字符。
5、反转
StringBuffer reverse()
---> 替换指定位置上的字符为指定字符。
6、将缓冲区中指定数据存储到指定字符数组中
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
示例2:
class StringBufferDemo { public static void main(String[] args) { delete(); } public static void method_revise() { StringBuffer sb = new StringBuffer("abcde"); sb.replace(1,4,"java");//从1-4修改成java sb.setCharAt(2,'k');//将2角标修改成K sop(sb.toString()); public static void delete() { StringBuffer sb=new StringBuffer("abcdefg"); sop(sb.toString()); sb.delete(0,sb.length());//清空缓冲区.或删除从哪到哪的字符 sop(sb.toString()); } public static void append() { StringBuffer sb=new StringBuffer();//建立字符缓冲区. sb.append("abc").append(123);//添加 sop(sb.toString());//打印字符串表现形式 } public static void sop(Object obj) { System.out.println(obj); } }
二、包装类
一、概述:
有时候,需要将int这样的基本类型转换为对象,以便可以使用一些方法。所有的基本类型都有一个相对应的类。这些类就称之为包装类。
二、基本数据类型对应的包装类:
基本数据类型 引用数据类型(包装类)
byte Byte
short Short
int Integeter
long Long
float Float
double Double
boolean Boolean
char Character
三、常见操作:
用于基本数据类型和字符串类型间的转换。
1、转换:
1)基本数据类型转换为字符串
基本数据类型 + "" ---> 直接转换成字符串
基本数据类型.toString(基本数据类型值) 。
2)字符串转换为基本数据类型:
基本数据类型名 变量名 = 包装类名.pase包装类名(String)
2、转二进制:
Integer.toBinaryString(int a);
十进制 -----> 其他进制
1)转为二进制:toBinaryString();
2)转为八进制:toOctalString();
3)转为十六进制:toHexString();
其他进制 -----> 十进制
parseInt(String,radix);
---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ----------------------
- 黑马程序员Java基础__String类及包装类
- 黑马程序员__JAVA基础__String类
- 黑马程序员_Day02 __String、StringBuffer/Builder类与基本数据类型对象包装类
- 黑马程序员__String及其相关类
- 黑马程序员--java基础复习之String类StringBuffer及基本数据类型包装类
- 黑马程序员----Java基础之数据类型包装类及集合框架
- 黑马程序员 Java基础<六>---> String类与包装类
- 黑马程序员 Java基础<六>---> String类与包装类
- 黑马程序员-- Java基础---> String类与包装类
- 黑马程序员:Java基础总结----对象包装类&自动装箱
- 黑马程序员--Java基础--基本数据类型与包装类
- 黑马程序员——Java基础---StringBuffer、Arrays、包装类
- 黑马程序员---包装类
- 黑马程序员---包装类
- 黑马程序员----java包装类详解
- 黑马程序员——java基础部分——基础类型与包装类详解
- java基础__string字符串
- 黑马程序员—OC基础--基础数据类型和包装类
- Leetcode Problem difficulty level and frequency table
- Windows Server 2012 R2超级虚拟化之一 第二代虚拟机
- 请列举出hibernate常见的接口和类[详解]
- UVa 136 Ugly Numbers (数论)
- Hibernate核心接口和数据类型总结
- 黑马程序员Java基础__String类及包装类
- &&逻辑运算符的汇编代码
- 为sourceinsight添加makefile和configure文件
- 关于之前自己写的菜票软件。。。
- 好的JFreechart学习网站
- HDU 1394 Minimum Inversion Number
- UVa 489 Hangman Judge (模拟&字符串匹配)
- 将整数n分成k份
- Andrioid自带pull解析xml顺序截图