Java API:String类
来源:互联网 发布:thunder mac 2.7.8 编辑:程序博客网 时间:2024/04/29 17:13
字符串就是指一连串的字符。字符串中可以包含任意字符,这些字符必须包含在一对双引号之内。String类位于java.lang包中,因此不需要导包就可以直接使用。可包含零到多个字符。空格也算一个字符。用加号来连接字符串和变量。
字符串字面值“abc”也可以看成是一个字符串对象。
字符串是常量,它们的值在创建之后不能更改。
打印一个对象的引用的时候会默认调用它的toString方法,打印其完整的类名和哈希值。但我打印字符串的时候不是这样,因为String类重写了toString方法,打印的时候会调用其自身的toString方法。
String类的初始化
在操作String类之前,首先需要对String类进行初始化。
使用字符串常量直接初始化一个String对象
String str1="abc";
由于String类比较常用,所以提供了这种简化的语法,用于创建并初始化String对象
字符串字面值“abc”也可以看成是一个字符串对象。
字符串是常量,它们的值在创建之后不能更改。
String str="abc";//当把"def"赋值给str,原来的"abc"就变成了垃圾。并没有在原对象上更改而是新建了一个对象。把这个新对象赋给了引用str="def"; System.out.println(str); //String重写了toString方法,打印的时候会自动调用自己的toString方法返回对象本身
使用String的构造方法初始化字符串对象
- String():创建一个内容为空的字符串
- String(byte[] bytes):通过使用平台的默认字符集解码指定的 byte 数组,构造一个新的
String
。 - String(byte[] bytes,int index,int length):把字节数组的一部分转成字符串
- String(char[] value):根据指定的字符数组创建对象
- String(char[],int index,int count):把字符数组的一部分转成字符串
- String(String value):根据指定的字符串内容创建对象
如何查看本平台默认字符集?项目–右键–属性–Resource–Text file encoding
String str1=new String();String str2=new String("abcd");char[] charArray={'a','b','c'};String str3=new String(charArray);byte[] byteArray={97,98,99,100,101,102};String str4=new String(byteArray);String str5=new String(byteArray,1,3);String str6=new String(charArray,1,2);System.out.println("a"+str1+"b");System.out.println(str2);System.out.println(str3);System.out.println(str4);System.out.println(str5);System.out.println(str6);
运行结果为
ababcdabcabcdefbcdbc
String类的常见操作
字符串的基本操作
- int length():返回此字符串的长度
- char charAt(int index):返回字符串中index位置上的字符,其中index的取值范围是:0~(字符串的长度-1)
- int indexOf(int ch):返回指定字符在此字符串中第一次出现处的索引
- int indexOf(String str):返回指定字符串在此字符串中第一次出现处的索引
- int indexOf(int ch,int fromIndex):返回指定字符在此字符串中从指定位置后第一次出现处的索引
- int indexOf(String str,int fromIndex):返回指定字符串在此字符串中从指定位置后第一次出现处的索引
int lastIndexOf(int ch):返回指定字符在此字符串中最后一次出现处的索引
String s="abcdedcba";System.out.println("字符串的长度为:"+s.length());System.out.println("字符串的第一个字符为:"+s.charAt(0));System.out.println("字符c第一次出现的位置为:"+s.indexOf('c'));System.out.println("字符c最后一次出现的位置为:"+s.lastIndexOf('c'));System.out.println("字符串cd第一次出现的位置为:"+s.indexOf("cd"));System.out.println("字符串a从第3个位置后第一次出现的位置为:"+s.indexOf('a',3));
运行结果为
字符串的长度为:9字符串的第一个字符为:a字符c第一次出现的位置为:2字符c最后一次出现的位置为:6字符串cd第一次出现的位置为:2字符串a从第3个位置后第一次出现的位置为:8
字符串的遍历
String s="abcd";for(int i=0;i<s.length();i++){System.out.println(s.charAt(i));}
运行结果为
abcd
统计不同类型的字符个数
String s = "ABCDEabcd123456!*&$%";int big = 0;int small = 0;int num = 0;int other = 0;for (int i = 0; i < s.length(); i++) {char c = s.charAt(i);if (c >= 'A' && c <= 'Z') { big++;} else if (c >= 'a' && c <= 'z') { small++;} else if (c >= '0' && c <= '9') { num++;} else { other++;}}System.out.println(s+"中有大写字母"+big+"个,小写字母"+small+"个,数字"+num+"个,其他字符"+other+"个");}
字符串的转换操作
- char[] toCharArray():将此字符串转换为一个字符数组
- byte[] getBytes():把字符串转换为字节数组
- (了解)String toLowerCase(): 使用默认语言环境的规则将String中的所有字符都转换为小写
- (了解)String toUpperCase():使用默认语言环境的规则将String中的所有字符都转换为大写
- (了解)String concat(String str);:将指定字符串连接到此字符串的结尾。
- static String valueOf(char[] chs):把字符数组转换成字符串
static String valueOf(int i):返回int参数的字符串表示形式。valueOf有很多重载,他可以把任意类型的数据转换成字符串。
String str="abcd";System.out.print("将字符串转为字符数组后的结果:");char[] charArray=str.toCharArray();for (int i = 0; i < charArray.length; i++) {if (i!=charArray.length-1) { //如果不是数组的最后一个元素,在元素后面加逗号 System.out.print(charArray[i]+",");}else { //数组的最后一个元素后面不加逗号 System.out.println(charArray[i]);}}byte[] byteArray=str.getBytes();for (int i = 0; i < byteArray.length; i++) {System.out.print(byteArray[i] + " ");}System.out.println("将int值转换为String类型之后的结果"+String.valueOf(12));System.out.println("将字符串转换成大写之后的结果:"+str.toUpperCase());
运行结果为
将字符串转为字符数组后的结果:a,b,c,d97 98 99 100 将int值转换为String类型之后的结果12将字符串转换成大写之后的结果:ABCD
按要求转换字符(链式编程)
链式编程:只要保证每次调用完方法返回的是对象,就可以继续调用
把第一个字符串的首字母转成大写,其余转换成小写
String s="aEFFDjdfdFE";String s2=s.substring(0,1).toUpperCase().concat(s.substring(1).toLowerCase());System.out.println(s2);
运行结果为
Aeffdjdfdfe
字符串的替换和去除空格操作
- String replace(CharSequence oldstr,CharSequence newstr):返回一个新的字符串,它是通过用newstr替换此字符串中出现的所有oldstr得到的。
String trim():返回一个新字符串,它去除了原字符串首位的空格。
String s="abcd";System.out.println("将b替换成e的结果:"+s.replace("b","e"));String s1=" a b c d ";System.out.println("去除字符串两端空格后的结果:"+s1.trim());System.out.println("去除字符串中所有空格后的效果:"+s1.replace(" ",""));
运行结果为
将b替换成e的结果:aecd去除字符串两端空格后的结果:a b c d去除字符串中所有空格后的效果:abcd
字符串的判断操作
- boolean endsWith(String suffix):判断此字符串是否以指定的字符串结尾
- boolean startsWith(String prefix):判断此字符串是否以指定的字符串开始
- boolean contains(CharSqeuence cs):判断此字符串中是否包含指定的字符序列
- boolean isEmpty():当且仅当字符串长度为0时返回true
- boolean equals(Object anObject):将此字符串与指定的字符串比较是否相同,区分大小写。
boolean equalsIgnoreCase(String str):
String s1="abcd";String s2="ef";String s3="Ef";System.out.println("判断是否以字符串ab开头:"+s1.startsWith("ab"));System.out.println("判断是否以字符串d结尾:"+s1.endsWith("d"));System.out.println("判断是否包含字符串adc:"+s1.contains("abc"));System.out.println("判断字符串是否为空:"+s1.isEmpty());System.out.println("判断两个字符串是否相等:"+s1.equals(s2));System.out.println("判断两个字符串是否相等:"+s2.equalsIgnoreCase(s3));
运行结果为
判断是否以字符串ab开头:true判断是否以字符串d结尾:true判断是否包含字符串adc:true判断字符串是否为空:false判断两个字符串是否相等:false判断两个字符串是否相等:false
字符串的截取和分割
- String[] split(String regex):根据参数regex将原来的字符串分割为若干个子字符串
- String substring(int beginIndex):返回一个新的字符串,它包含字符串中索引beginIndex后的所有字符
String substing(int beginIndex,int endIndex):返回一个新的字符串,它包含此字符串中从索引beginIndex到索引endIndex之间的所有字符。
String str="羽毛球-篮球-乒乓球";System.out.println("从第5个字符截取到末尾的结果:"+str.substring(4));System.out.println("从第5个字符截取到第6个字符的结果:"+str.substring(4,6));System.out.print("分割后的字符串数组中的元素依次为:");String[] strArray=str.split("-");for(int i=0;i<strArray.length;i++){if (i!=strArray.length-1) { //如果不是数组的最后一个元素,在元素后面加逗号 System.out.print(strArray[i]+",");}else { //数组的最后一个元素后面不加逗号 System.out.println(strArray[i]);}}
运行结果为
从第5个字符截取到末尾的结果:篮球-乒乓球从第5个字符截取到第6个字符的结果:篮球分割后的字符串数组中的元素依次为:羽毛球,篮球,乒乓球
- Java API String类
- Java API:String类
- Java String类API整理
- Java API(String类);
- 黑马程序员—Java API(String类)
- java API------String类的compareTo方法
- Java基础-常用API之String类
- 重要的JAVA-API String类
- Java API——String类
- JAVA API备忘----String
- Java String API
- Java String API
- java API String相关
- Java String 常用 API
- android Java String API
- Java基础--API String
- Java String API详解
- java string api
- 【linux】vim插件的安装
- android NFC的使用
- 那些Python方法---reduce()
- 【PHP兴趣部落-06】PHP日期和时间
- android的消息处理机制(图+源码分析)——Looper,Handler,Message
- Java API:String类
- so链接.a问题
- scala的主构造函数
- 安卓获取ApiStore天气数据失败
- iOS正则表达式
- Android Studio 利用GsonFormat插件解析gson格式问题
- 人成长中必须知道的20个故事
- 自定义view
- Java虚拟机启动参数详解