字符串
字符串与基本数据的相互转化
基本数据转字符串
1.基本数据+””就是字符串
2.String.valueOf(基本数据);
3.使用包装类的toString();
String str=Integer.toString(a);
字符串转基本数据
1.使用基本数据类型包装类的parse***(str);
int a=Integer.parseInt(str);
2.对应包装类的valueOf();
字符数组转字符串
char [] ch={'a','b','c'};
// String st2=new String(ch);
byte数组转字符串
byte [] by={97,98,99};
String st3=new String(by);
System.out.println(st3);
字符串转字符数组
char [] cha1=new char [10];
// st="abcdefc";
// //将此字符串中的字符复制到目标字符数组中。
// st.getChars(1,5,cha1,0);
常用方法:
方法名 |
说明 |
将此字符串与指定的对象比较。 |
|
charAt(int index) |
返回指定索引的 char价值。 |
将指定的字符串,此字符串的末尾 |
|
如果并且只有当此字符串包含指定的字符序列的字符串值,则返回真值。 |
|
测试如果这个字符串以指定的后缀结束。 |
|
startsWith(String prefix) |
测试这个字符串是否以指定的前缀开始。 |
返回指数在这个字符串指定的子字符串中第一个出现的。 |
|
返回此字符串的指定子字符串中第一个出现在索引中,从指定索引处开始。 |
|
lastIndexOf(String str) |
返回指数在这个字符串的指定子字符串中最后出现。 |
方法名 |
说明 |
lastIndexOf(String str, int fromIndex) |
返回此字符串的指定子字符串中最后出现在索引,搜索后从指定索引处开始。 |
length() |
返回此字符串的长度。 |
切割字符串,返回数组 |
|
substring(int beginIndex) |
返回一个字符串,这个字符串的子串。 |
substring(int beginIndex, int endIndex) |
返回一个字符串,这个字符串的子串。 |
trim() |
返回一个字符串,它的值是字符串,任何前导和尾随空格删除。 |
valueOf(int i) |
返回的 int参数的字符串表示形式。 |
replace(String oldChar, String newChar) |
返回从字符串中替换所有出现在 newChar oldChar结果字符串。 |
|
|
package String;
import java.util.Arrays;
/**
* 引用数据类型中的String类型 字符串类型 多个字符的数组 字符 char
*/
public class myString {
public static void main(String[] args) {
定义String的方式
// //方式一 直接赋值
// String st="abc";
// System.out.println(st);
// //方式二 实例化一个String对象
// String st1=new String("abc");
// System.out.println(st1);
// //数组和字符串的转换
// //方式三 定义char 数组,将数组作为参数传入到String的实例化对象中
// char [] ch={'a','b','c'};
// String st2=new String(ch);
// System.out.println(st2);
// //方式四 定义byte 数组,将数组作为参数传入到String的实例化对象中
// //97 a 98 b 99 c
// byte [] by={97,98,99};
// String st3=new String(by);
// System.out.println(st3);
字符串的比较三种
// //String类型表示的字符串都是常量
// String str1="abc";
// String str2="abc";
// System.out.println(str1==str2);//true
// //new String();得到的字符串是字符串对象
// String str3=new String("abc");
// String str4=new String("abc");
// //比较str3与str4的地址,两个对象的地址不同
// System.out.println(str3==str4);//false
// System.out.println(str3.equals(str4));//true
//
空指针异常
// //构造方法,用来实例化对象
// String str5=new String();
// System.out.println("str5="+str5.length());
// // 空指针异常 如果字符串为null ,调用字符串方法时,会发生NullPointerException
//// String str6=null;
//// System.out.println("str6="+str6.toString());
// st="abcdefg";
st.charAt(3)返回指定位置字符
// //返回 char指定索引处的值
// System.out.println( st.charAt(3));
// String str7="avs";//a 97 b 98 c 99
// String str8="aaw";
compareTo
// //按字典顺序比较两个字符串。返回第一对不同值的ascll码差值
// System.out.println(str7.compareTo(str8));
concat
//将指定的字符串连接到该字符串的末尾,并返回一个新的字符串
//// String st4=st2.concat(st3);
//// System.out.println(st4);
st.contains返回真假
//// //当且仅当此字符串包含指定的char值序列时才返回true
//// System.out.println(st.contains("abc"));//true
//// //当且仅当此字符串与指定char值序列完全一致时才返回true
//// System.out.println(st.contentEquals("abcdefg"));//true
//// char [] ch={'a','b','c'};
//// //copyValueof 传入一个char数组,返回一个String字符串
//// String st5=String.copyValueOf(ch);
//// System.out.println("st5="+st5);
endsWith
//// //测试此字符串是否以指定的后缀结尾。
//// System.out.println(st.endsWith("efg"));//true
//// //equals() 比较两个字符串的值是否相等
//// //byte数组和String相互转换
//// byte [] by={97,98,99,100};
//// String st6=new String(by);
//// byte [] by1=st6.getBytes();
//// System.out.println(Arrays.toString(by1));
//// String st7="中";
//// //处理乱码:乱码出现原因:编码格式不一致
//// by1=st7.getBytes("utf-8");
//// st7=new String(by1,"gbk");
//// System.out.println(Arrays.toString(by1));
//// System.out.println(st7);
hashCode
String st=" abcdefc ";
//返回此字符串的哈希码。
System.out.println(st.hashCode());
indexOf
lastIndexOf
//返回指定字符第一次出现的字符串内的索引
System.out.println(st.indexOf('c'));//2
System.out.println(st.lastIndexOf('c'));//6
//返回指定子串的第一次出现的字符串中的索引,从指定的索引开始。
System.out.println(st.indexOf('c', 3));//6
isEmpty
//判断一个字符串是否为空
System.out.println(st.isEmpty());//false
//返回指定子字符串最后一次出现的字符串中的索引。
System.out.println(st.lastIndexOf("cde"));//2
//数组名.length
length
//字符串获取长度:字符串.length()
System.out.println(st.length());
replace
//replace() 替换字符 返回一个新字符串,原字符串并没有改变
String st1=st.replace('c','x');
System.out.println(st1);
// String st2=st.replace("abc","xyz");
// System.out.println(st2);
String st3="abc,def";
for(int i=0;i<st3.length();i+=2){
System.out.println(st3.charAt(i));
}
split
// //split(String regex)通过制定的正则,对此字符串进行分割,并返回一个String数组。
// String[] sts=st3.split(",");
// System.out.println(Arrays.toString(sts));
startsWith
// System.out.println(st.startsWith("a"));
//测试在指定索引处开始的此字符串的子字符串是否以指定的前缀开头。
System.out.println(st.startsWith("cde",2));//false
// //Charsequence字符序列
// CharSequence cha=st.subSequence(2,4 );//包含开始,不包含结束
// System.out.println(cha);
// //返回一个字符串,该字符串是此字符串的子字符串。 从指定位置截取字符串并返回
// System.out.println(st.substring(2));//cdefc、
// char [] ch=st.toCharArray();
// System.out.println(Arrays.toString(ch));
// st=" ABC defc ";
toLowerCase
// //所有字符转为小写
// String st5=st.toLowerCase();
// System.out.println(st5);
// //默认调用 将自身返回 显示调用和不写没有区别
// System.out.println(st);
toUpperCase
// //小写转大写
// System.out.println(st.toUpperCase());
// System.out.println(Arrays.toString(st.toCharArray()));
trim
// //去除前导和尾随的空格
// String st6=st.trim();
// System.out.println(Arrays.toString(st6.toCharArray()));
// int a=10;
// String st7=String.valueOf(a);
// System.out.println(st7+10);
// //getChars
getChars
char [] cha1=new char [10];
st="abcdefc";
//将此字符串中的字符复制到目标字符数组中。
st.getChars(1,5,cha1,0);
System.out.println(cha1);//bcde
// int [] nums={1,2,3,4,45,56};
// System.out.println(nums);
}
}