一)字符串的获取:
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培训、期待与您交流! ----------------------