String类的几种构造方法
package com.String类;
public class Demo {
public static void main(String[] args) {
/*
空的构造方法
*/
String s1 = new String();
s1 = "abc";
System.out.println("s1 = " + s1);
byte[] bt = {100,99,98,97};
/*
将数字转换为对应的ASCII码
*/
String s2 = new String(bt);
System.out.println("s2 = " + s2);
/*
截取下标从0开始到3结束(0,1,2)的ASCII码
*/
String s3 = new String(bt,0,3);
System.out.println("s3 = " + s3);
char[] ch = {'a','b','c'};
/*
将字符数组转换为字符串
*/
String s4 = new String(ch);
System.out.println("s4 = " + s4);
/*
将字符数组的部分转换为字符串(截取从0开始到2结束(0,1))
*/
String s5 = new String(ch,0,2);
System.out.println("s5 = " + s5);
System.out.println("s5的长度为" + s5.length());
}
}
String类的判断功能
- boolean equals(Object obj):比较字符串的内容是否相同,区分大小写
- boolean equalsIgnoreCase(String str):比较字符串的内容是否相同,忽略大小写
- boolean contains(String str):判断大字符串中是否包含小字符串
- boolean startsWith(String str):判断字符串是否以某个指定的字符串开头
- boolean endsWith(String str):判断字符串是否以某个指定的字符串结尾
- boolean isEmpty():判断字符串是否为空。
package com.String类;
public class Demo02 {
public static void main(String[] args) {
String s1 = "abc";
String s2 = "Abc";
/**
*判断是否相等(区分大小写)
*/
System.out.println("equals:" + s1.equals(s2));
/**
*判断是否相等(不区分大小写)
*/
System.out.println("equals:" + s1.equalsIgnoreCase(s2));
/**
*判断字符串中是否包含子串
*/
System.out.println("equals:" + s1.contains("ab"));
/**
* 判断字符串是否以某固定字符串开头
*/
System.out.println("equals:" + s1.startsWith("ab"));
/**
* 判断字符串是否以某固定字符串结尾
*/
System.out.println("equals:" + s1.endsWith("bc"));
/**
* 判断字符串是否为空
*/
System.out.println("isempty:" + s1.isEmpty());
}
}
String类型的获取功能
- char charAt(int index):获取指定索引位置的字符
- int indexOf(int ch):返回指定字符在此字符串中第一次出现处的索引
- int indexOf(String str):返回指定字符串在此字符串中第一次出现处的索引
- int indexOf(int ch,int fromIndex):返回指定字符在此字符串中从指定位置后第一次出现处的索引。
- int indexOf(String str,int fromIndex):返回指定字符串在此字符串中从指定位置后第一次出现处的索引。
- String substring(int start):从指定位置开始截取字符串,默认到末尾。
- String substring(int start,int end):从指定位置开始到指定位置结束截取字符串。
package com.String类;
public class Demo03 {
public static void main(String[] args) {
String s1 = "abcdea";
/**
* charAt(index)根据下标取元素
*/
System.out.println(s1.charAt(1));
/**
* 返回指定字符在字符串中第一次出现的位置(找不到返回-1)
*/
System.out.println(s1.indexOf(100));//100对应的ASCII为d
/**
* 返回指定字符串在原字符串中第一次出现的位置(找不到返回-1)
*/
System.out.println(s1.indexOf("abc"));
/**
* 返回指定字符在此字符串中从指定位置后第一次出现处的索引
*/
System.out.println(s1.indexOf(97,1));//从下标为1的字符之后寻找字符a
/**
* 返回指定字符串在原字符串中从指定位置后第一次出现处的索引
*/
System.out.println(s1.indexOf("ea",1));//从下标为1的字符之后寻找字符串ea
/**
* 指定位置开始截取字符串的子串(默认到字符串最后)
*/
System.out.println(s1.substring(3));
}
}
String类型的转换功能
- byte[] getBytes():把字符串转换为字节数组。
- char[] toCharArray():把字符串转换为字符数组。
- static String valueOf(char[] chs):把字符数组转成字符串。
- static String valueOf(int i):把int类型的数据转成字符串。
- String toLowerCase():把字符串转成小写。
- String toUpperCase():把字符串转成大写。
- String concat(String str):把字符串拼接。
package com.String类;
import java.lang.reflect.Array;
import java.util.Arrays;
public class Demo04 {
public static void main(String[] args) {
String s1 = "abcd";
byte[] bt = new byte[s1.length()];
char[] ch = new char[s1.length()];
bt = s1.getBytes();//将字符串转换为byte类型
System.out.println(Arrays.toString(bt));
ch = s1.toCharArray();//将字符串转换为字符数组
System.out.println(Arrays.toString(ch));
char[] ch2 = {'a','b','c'};
String val = String.valueOf(ch2);//将字符数组转换为字符串(与上面的其中一个构造方法类似)
System.out.println(val);
String val2 = String.valueOf(97);//将int类型的数据转换为字符串
System.out.println(val2);
String val3 = s1.toUpperCase();//将字符串转换为全大写
System.out.println(val3);
String val4 = val3.toLowerCase();//将字符串转换为全小写
System.out.println(val4);
String val5 = val4.concat(val3); //字符串拼接
System.out.println(val5);
}
}
String类型的替换功能
- String replace(char old,char new):把字符串中的某个字符用新的字符所替换
- String replace(String old,String new)把字符串中的某个字符串用新的来替换
- String trim() 去除字符串两空格
package com.String类;
public class Demo05 {
public static void main(String[] args) {
String s1 = " aabbcce ";
String val = s1.replace("c","f");//将字符串中的某个字符用新字符替换(字符串一样)
System.out.println(val);
System.out.println(s1);
System.out.println(s1.trim()); //去除字符串两端的空格
}
}
大小写字母计数实例
package com.String类;
import java.util.Scanner;
public class Demo06 {
public static void main(String[] args) {
String s;
Scanner sc = new Scanner(System.in);
s = sc.next();
int bignum = 0 , smallnum = 0,num = 0;
for(int i = 0 ; i < s.length() ; i++){
char ch = s.charAt(i);
if(ch >= 'A' && ch <= 'Z')
bignum++;
else if(ch >= 'a' && ch <= 'z')
smallnum++;
else
num++;
}
System.out.println("大写字母有" + bignum + "个");
System.out.println("小写字母有" + smallnum + "个");
System.out.println("整数有" + num + "个");
}
}
首字母大写实例
package com.String类;
import java.util.Scanner;
public class Demo07 {
public static void main(String[] args) {
String s;
Scanner sc = new Scanner(System.in);
s = sc.next();
s = s.substring(0,1).toUpperCase() + s.substring(1);
System.out.println("首字母大写"+s);
}
}
子串查找计数实例
package com.String类;
public class Demo08 {
public static void main(String[] args) {
String tpl = "woaijavawoaijavawoaijava";
System.out.println("子串的数目为" + getcount(tpl,"java"));
}
public static int getcount(String tpl,String s){
int i = 0,cnt = 0;
while (tpl.indexOf("java",i) != -1){
cnt++;
i = tpl.indexOf("java",i) + s.length();
}
return cnt;
}
}
StringBuffer类
public StringBuffer append(boolean b)
该方法的作用是追加内容到当前StringBuffer对象的末尾
public StringBuffer deleteCharAt(int index)
该方法的作用是删除指定位置的字符,然后将剩余的内容形成新的字符串。
public StringBuffer delete(int start,int end)
该方法的作用是删除指定区间以内的所有字符,包含start,不包含end索引值的区间。
public StringBuffer insert(int offset, boolean b),
该方法的作用是在StringBuffer对象中插入内容,然后形成新的字符串。例如:
public StringBuffer reverse()
该方法的作用是将StringBuffer对象中的内容反转,然后形成新的字符串。
public void setCharAt(int index, char ch)
该方法的作用是修改对象中索引值为index位置的字符为新的字符ch
package com.StringBuffer类;
public class Demo {
public static void main(String[] args) {
StringBuffer sb = new StringBuffer("abc");
sb.append("1234").append("fpx");
System.out.println(sb);
sb.deleteCharAt(0);//这里是对原字符串直接操作(直接改变了原字符串的值)
System.out.println(sb);
sb.delete(1,3);
System.out.println("删除区间1-3 " + sb);
sb.insert(3,"abs"); //在第三个处插入字符串abs(append只能在字符串尾部插入,insert可以随意插入)
System.out.println(sb);
sb.reverse();//字符串反转
sb.setCharAt(0,'A');//给指定位置进行赋值
System.out.println(sb);
}
}
I'm so cute. Please give me money.
- 本文链接:http://yoursite.com/2020/04/25/String%E7%B1%BB/
- 版权声明:本博客所有文章除特别声明外,均默认采用 许可协议。
若没有本文 Issue,您可以使用 Comment 模版新建。
GitHub IssuesGitHub Discussions