字符串
(1)
在字符串中利用length()方法能得到字符串的长度,例如:
String str = " 123qqww ";
int length = str.length;
此时length则是该字符串的长度。
利用charAt()方法能得到字符串中第i个索引的元素(注意,索引与数组相同,从0开始)
例如:
String str = " qwerdf"
char c = s.charAt(1)
此时返回的是该字符串1索引的元素,即w。
例子如下:使用上述方法对一个字符串进行对数字,大写,小写字母个数的统计
import java.util.Scanner;
public class StringDemo2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入你想要统计的字符串:");
String str = sc.next();
int count = str.length();
//count1表示数字格式,count2表示大写字母个数,count3表示小写字母个数
int count1 = 0,count2 = 0,count3 = 0;
char[] a = new char[count];
//使用Ascll编码来进行分类
for (int i = 0; i < count; i++) {
int temp = (int)(str.charAt(i));
if(temp >= 48 && temp<= 57){
count1 ++;
}
else if(temp >= 65 && temp <= 90){
count2 ++;
}
else if(temp >= 97 && temp <= 122){
count3 ++;
}
}
System.out.println("数字个数是" + count1 +" "+ "大写字母个数是" +" "+ count2 +" "+ "小写字母是" + count3);
}
}
本题使用Ascll编码来对数字,大小写进行分类并统计。
但在Java中,在char类型比较时,也会自动转化为Ascll码进行比较,即也能如下实现上述功能
import java.util.Scanner;
public class StringDemo3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入你想要统计的字符串:");
String str = sc.next();
int count = str.length();
//count1表示数字格式,count2表示大写字母个数,count3表示小写字母个数
int count1 = 0,count2 = 0,count3 = 0;
char[] a = new char[count];
for (int i = 0; i < count; i++) {
char temp = str.charAt(i);
if(temp >= '0' && temp<= '9'){
count1 ++;
}
else if(temp >= 'A' && temp <= 'Z'){
count2 ++;
}
else if(temp >= 'a' && temp <= 'z'){
count3 ++;
}
}
System.out.println("数字个数是" + count1 +" "+ "大写字母个数是" +" "+ count2 +" "+ "小写字母是" + count3);
}
}
(2)本例题为实现拼接操作,将一个int类型的数组通过字符串输出的形式,输出为[1,2,3,4,5,6]
例如定义一个数组为:int[] a = {1,2,3,55,45},输出为[1,2,3,55,45]
public class StringDemo4 {
public static void main(String[] args) {
int[] a = {1,2,3,55,45};
System.out.println(link(a));
}
public static String link(int[] a){
if(a == null){
return "";
}
String str = "[";
for (int i = 0; i < a.length; i++) {
if(i != (a.length - 1)){
str = str + a[i] +", ";
}else{
str = str + a[i];
}
}
str = str + "]";
return str;
}
}
(注意)在字符串拼接当中,直接使用+进行拼接。
(3)本例题为字符串的反转,也是使用+进行字符串的拼接
public class StringDemo5 {
public static void main(String[] args) {
String a = "qq123we";
String str1 = turn(a);
System.out.println(str1);
}
public static String turn(String a){
int len = a.length();
String str = new String();
for (int i = len - 1; i >= 0; i--) {
str = str + a.charAt(i);
}
return str;
}
}
(4)字符串的截取,主要采用substring方法,substring方法格式为
str.substring(a,b);注意:此时截取的时索引a到b-1的数据,即包含左边边界,但是不包含右边界。
例如:
String a = "1254788"
a.substring(1,3);
截取的是“25”,即1号索引到3-1就是2号索引。
(5)字符串的替代,主要采用replace方法,格式为
str.replace(a,b); a代表字符串中原来的值,b代表替换a的值
例如
String str = "Java真的是太TMD有趣了";
str = str.replace("TMD",***);(注意:直接写str.replace(a,b),原字符串里的数据是不会改变的,要用一个新的字符串来接受替换的字符串)
此时打印出来会显示 (Java真的是太***有趣了)。
(6)创建字符串还有一种方法,用StringBuilder进行创建,但创建出来的是StringBuilder类型。
//可以将StringBuilder看作一种容器工具,将字符串传入该容器中,进行拼接,逆转转操作之后再用toString方法转化为字符串输出
格式为 StringBuilder sb = new StringBuilder();//字符串可以不定义,默认为空,也可以定义初始字符串,例如StringBuilder sb = new StringBuilder("abc");此时为创建一个初始值为abc的字符串。
StringBuilder append()方法是用来添加元素在字符串中并且返回字符串本身,一般是用来将字符串存储进该容器中进行处理
StringBuilder sb = new StringBuilder("ab");
sb.append(1);
System.out.println(sb);
此时则会打印出ab1。
而reverse方法则是反转字符串(注意:此时使用reverse方法后,用StringBuilder创建的原字符串会发生反转)
StringBuilder sb = new StringBuilder("ab");
sb.append(1);
sb.reverse();
System.out.println(sb);
此时打印输出为1ba。
而在完成想要的操作以后,将StringBuilder创建的对象转换为String类型,用toString方法进行转换,在转换之后就能使用字符串相关的方法。
StringBuilder sb = new StringBuilder("ab");
sb.append(1);
sb.reverse();
String str = sb.toString();
str = str.replace("a","^^^");
System.out.println(str);
此时会打印出1b^^^
(6)在字符串中有穿插一些符号的,能用Stringjoiner进行操作(一般不使用)
//也可以将Stringjoiner看作一种容器工具,将字符串传入该容器中,进行操作之后再用toString方法转化为字符串输出,但只能传递字符形式的数值。
例如:StringJoiner sj = new StringJoiner(":", "[", "]");
sj.add("1").add("2");
//格式为(间隔符,开始符,结束符)
即会输出[1:2]样式。