一、字符串定义
1、直接定义:用双引号表示字符串内容
//直接赋值
String str1="Java is the most beautiful programming language";
String str2;
str2="Java is the most beautiful programming language";
2、String类定义:实例化String对象
String str3=new String("Java is the most beautiful programming language");
String str3;
str3=new String("Java is the most beautiful programming language");
两种定义方式有一定区别,上篇博客已有介绍——https://blog.csdn.net/weixin_43533825/article/details/89317150
二、格式化输出(包含字符串)
1、System.out.printf():跟C语言printf()相似风格的格式化输出功能,输出不换行
2、System.out.format():与System.out.printf()一样,输出不换行
3、System.out.println(String.format()):既可以格式化输出,又具备System.out.println()输出换行的功能
示例代码如下:
public class Stringtest {
public static void main(String[] args) {
// TODO Auto-generated method stub
//syso快捷键结果,换行输出,无法格式转换
System.out.println("test");
//一般输出无法换行输出,也无法格式转换
System.out.print("test");
//常用于格式转换,但是无法换行输出
System.out.printf("%s is the most beautiful programming language","java");
//格式转换,无法换行输出
System.out.format("%s is the most beautiful programming language","java");
//格式转换,可以换行输出
System.out.println(String.format("%s is the most beautiful programming language","java"));
}
}
三、字符串操作
1、字符串查找
- indexOf(int ch/String s,int fromIndex):ch字符,s字符串,fromIndex开始搜索的索引位置,返回指定字符/字符串在字符串中第一次出现位置的索引,从fromIndex位置处开始寻找
- lastIndexOf(int ch/String s,int fromIndex):同上,返回指定字符/字符串在字符串中最后一次出现位置的索引,从fromIndex位置处开始寻找
- charAt(int index):返回指定索引处的字符
- getChars(int srcBegin,int srcEnd,char[] dst,int dstBegin):将字符从字符串复制到目标字符数组,srcBegin要复制的第一个字符的索引,srcEnd要复制的最后一个字符的索引,dst目标数组,dstBegin目标数组中起始位置。
public class Stringtest{
public static void main(String[] args) {
// TODO Auto-generated method stub
String s="JavaJava";
//返回字符串或字符在s首次出现位置的索引
System.out.println(s.indexOf("ava"));
System.out.println(s.indexOf('a'));
//返回字符串或字符在s最后一次出现位置的索引
System.out.println(s.lastIndexOf("ava"));
System.out.println(s.lastIndexOf('a'));
//返回字符串指定索引位置的字符
System.out.println(s.charAt(5));
//返回指定位置的字符放入数组中
char[] dst=new char[20];
s.getChars(2, 5, dst, 2);
System.out.println(dst);
}
}
2、字符串比较
- compareTo(Object o/String s):字符串与对象的比较/按字典顺序比较两个字符串,返回整型,相等返回0,如果字符串小于字符串参数,返回小于0的差值,如果字符串大于字符串参数,返回大于0的差值。
- equals(String s):返回true false
- equalsIgnoreCase(String s):返回true false,忽略大小写
public class Stringtest2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
String s="JavaJava";
//比较首字母,首字母相同,比较下个,以此类推
System.out.println(s.compareTo("asdfasdfa"));//-23
//比较内容
System.out.println(s.equals("JavaJava"));//true
//忽略大小写,比较内容
System.out.println(s.equalsIgnoreCase("javajava"));//true
}
}
3、字符串分割、截取
- split():将拆分的结果保存到数组中,可以限定拆分的次数
- substring():截取范围内的字符串
public class Stringtest {
public static void main(String[] args) {
String s="Java is the most beautiful programming language";
//以空格分割s字符串,将拆分后的单词保存到str字符串数组里
String[] str=s.split(" ");
for(int i=0;i<str.length;i++)
{
System.out.println(str[i]);
}
//截取第一个单词
System.out.println(s.substring(0,s.indexOf(" ")));
//截取最后一个空格之后的子字符串
System.out.println(s.substring(s.lastIndexOf(" ")+1));
//截取最后一个单词
System.out.println(s.substring(s.lastIndexOf(" ")+1,s.length()));
//输出字符串长度,length()是函数
System.out.println(s.length());
//输出数组的长度,length是属性
System.out.println(str.length);
}
}
4、字符串大小写转换
- toLowerCase():转换为小写
- toUpperCase():转换为大写
//转换为小写字符串
System.out.println(s.toLowerCase());
//转换为大写字符串
System.out.println(s.toUpperCase());
5、字符串替换、修改
- replace(char oldchar,char newchar):返回替换后的字符串
- trim():删除头尾空白符
public class Stringtest4 {
public static void main(String[] args) {
String s=" Java is the most beautiful programming language ";
//替换字符串,不改变原有s字符串
String str=s.replace("Java", "Python");
System.out.println(s);
System.out.println(str);
//删除首尾空白符
System.out.println(s.trim());
System.out.println(str.trim());
}
}
6、字符串开始、结尾
- startsWith():是否以指定内容开始,返回boolean类型
- endsWith():是否已指定内容结束,返回boolean类型
//先去出首尾空白符,在进行首尾字符串判断
System.out.println(s.trim().startsWith("Java"));
System.out.println(str.trim().endsWith("language"));
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2019.12.14 更新
- String.join把 list 转换为 String
Map<String, String> map = new HashMap<String, String>();
map.put("sss", "sssss");
List<String> list = new ArrayList<String>(map.keySet());
System.out.println(list);
list.add("sss");
String str=String.join("0",list);
System.out.println(str);
// 判断字符是 数字,字母
System.out.println(Character.isDigit('3'));
System.out.println(Character.isLetter('s'));
- str.toCharArray() 把字符串转换成 字符 数组
- Integer.toBinaryString 把数字转换成二进制字符串
String binaryStr=Integer.toBinaryString(24);
System.out.println(binaryStr);
char[] chars=binaryStr.toCharArray();
for (char c:chars){
System.out.println(c);
}
- parseint() 和 valueof() 区别:前者返回的int基本类型,无法使用对象方法,后者返回的Integer包装类,可以使用对象方法