一、String字符串理解
java字符串类,包含了字符串的值和实现字符串相关操作的一些方法
1、String字符串可分静态字符串和动态字符串
静态初始化字符串:String s1 = "hello";
动态初始化字符串:String s2 = new String("hello");
2、静态初始化与动态初始化的区别
二、String字符串常用方法
charAt(int index) //返回指定下标的字符(从零开始)
getBytes() //返回字节数组
字符串和字符数组的转换
public class string001 {
public static void main(String[] args)
{
String str1= "xiaoluo"; //定义一个字符串
char c[] = str1.toCharArray(); //toCharArray:将前面的name字符串转换为一个数组
for (int i=0;i<c.length;i++)
{
System.out.print(c[i]+" "); //循环取出数组中的每一个元素
}
System.out.println(""); //换行
String str2 = new String(c); //将全部数组转换至一个字符串
String str3 = new String(c,0,3); //将0-3个元素转换至一个字符串
System.out.println(str2);
System.out.println(str3);
}
}
//x i a o l u o
//xiaoluo
//xia
字符串中取出指定位置的字符
public class String002 {
public static void main(String[] args)
{
String str1 = "xiaoluo"; //声明一个字符串
System.out.println(str1.charAt(3));//charAt方法:取出字符串下标为3的元素
}
}
//o
将一个字符串变成一个byte数组,同时将一个byte数组变成一个字符串
字符串可以通过getBytes()方法将String变成一个byte数组,然后可以通过String的构造方法将一个字节数组从新变为字符串
public class String003 {
public static void main(String[] args)
{
String str1 ="beijing"; //声明一个字符串
byte b[] =str1.getBytes(); //通过getBytes:将字符串转换为一个字节数组
System.out.println(new String(b)); //将整个字节数组转换为一个字符串
System.out.println(new String(b,1,3));//将字节数组b中下标为1-3的元素转换为字符串
}
}
//beijing
//eij
获取一个字符串所占长度
通过调用length方法获取了字符串的长度
public class StringLength {
public static void main(String[] args)
{
String str1 = "beijing"; //声明一个字符串
System.out.println("str1字符串长度为:"+str1.length());//通过length获取字符串长度
}
}
//str1字符串长度为:7
注意:length和length()区别?
先明确一点,任何方法的调用后面必须带()才是实现,而length是取数组长度,元素后没有带()括号,而字符串调用length是一个方法,方法的调用后面必须带()
indexOf方法查找指定的字符串中是否存在某个元素
public class String_indexOf {
public static void main(String[] args)
{
String str1 = "qwertyuioepe";//声明一个字符串
System.out.println(str1.indexOf("w"));//通过indexOf方法查找字符串中是否存在w元素存在位置
System.out.println(str1.indexOf("e",4));//通过indexOf方法查找e元素是否存在并从第四个元素开始查找第一个e
System.out.println(str1.indexOf("b"));//字符串中不存在的元素返回-1
}
}
//1
//9
//-1
去除左右两边空格
trim()方法去除字符串中多余空格
public class String_indexOf {
public static void main(String[] args)
{
String str1 = " qwertyuioepe ";//声明一个字符串
System.out.println(str1.trim());//trim方法:去除字符串中左右两边的空格
System.out.println(str1);
}
}
//qwertyuioepe
// qwertyuioepe
字符串截取
通过substring()方法截取指定的字符串或字符串之间的元素
public class String_indexOf {
public static void main(String[] args)
{
String str1 = "qwertyuioepe";//声明一个字符串
System.out.println(str1.trim());//trim方法:去除字符串中左右两边的空格
// System.out.println(str1);
System.out.println(str1.substring(4));//substring方法:从四个元素开始截图后面的元素
System.out.println(str1.substring(0,4));//结果下标为0-4之间的元素
}
}
//qwertyuioepe
//tyuioepe
//qwe
按照指定的字符串拆分字符串
在Stringzing通过split()方法可以进行字符串的拆分操作,拆分的数据将Yui字符串数组的形式返回,如下是按照空格进行拆分并将拆分的字符串保存在一个列表
public class String_indexOf {
public static void main(String[] args)
{
String str1 = "hello world";//声明一个字符串
String str2[] = str1.split(" ");//按照空格对str1中字符串进行拆分并将拆分的元素保存在一个列表
for(int i=0;i<str2.length;i++) //循环输出str2[]中所有元素
{
System.out.println(str2[i]);
}
}
}
//hello
//world
判断字符串以某某开头或某某结尾
startsWith:判断字符串以某某开头
endsWith:判断字符串以某某结尾
public class String_indexOf {
public static void main(String[] args)
{
String str1 = "***hello world";//声明一个字符串
String str2 = "nihao***";
if(str1.startsWith("***"))
{
System.out.println("(***hello world)以***开头");
}
if(str2.endsWith("***"))
{
System.out.println("(nihao***)以***结尾");
}
}
}
//(***hello world)以***开头
//(nihao***)以***结尾
指定字符串进行替换
在String中使用replaceAll可对字符串中存在字符进行指定行替换
public class String_indexOf {
public static void main(String[] args) {
String str1 = "hello world";//声明一个字符串
String str2 = str1.replaceAll("w","W");//replaceAll方法:将w元素替换成W
System.out.println(str2);
}
}
//hello World