一、String类常用方法(1)
package com.hpe.string;
public class TestString2 {
public static void main(String[] args) {
String s1 = "sun java", s2 = "Sun Java";
System.out.println(s1.charAt(1));//u
System.out.println(s2.length());//8
System.out.println(s1.indexOf("java"));//4
System.out.println(s1.indexOf("Java"));//-1
System.out.println(s1.equals(s2));//false
System.out.println(s1.equalsIgnoreCase(s2));//true
String s = "我是程序员,我在学java";
String sr = s.replace('我', '你');
System.out.println(sr);//你是程序员,你在学java
}
}
总结:
1)String类有一个方法length()可以得出当前字符串对象的字符序列长度。srt.length();
2)数组也有一个变量length可以获取数组长度。用法:a.length
3)集合中通过list.size()来获取列表长度。
二、String类常用方法(2)
package com.hpe.string;
public class TestString3 {
public static void main(String[] args) {
String s = "Welcome to Java World!";
String s1 = " sun java ";
System.out.println(s.startsWith("Welcome"));//true
System.out.println(s.endsWith("World"));//false
String sL = s.toLowerCase();
String sU = s.toUpperCase();
System.out.println(sL);//welcome to java world!
System.out.println(sU);//WELCOME TO JAVA WORLD!
String subS = s.substring(11);
System.out.println(subS);//Java World!
String sp = s1.trim();
System.out.println(sp);//sun java
}
}
三、String类常用方法(3)
字符串连接
1)使用“+”
int age = 25;
String result = "年龄:" + age;
说明:数值型变量将自动转换成String类型
输出结果:年龄:25
2)使用String类的contact()方法
String str1 = new String("欢迎学习:");
String str2 = new String("Java");
String result = str1.concat(str2);
System.out.println(result);
说明:A.concat(B),B字符串将被连接到A字符串后面,但实际上是重新分配了新的内存地址来存放新的字符串。
运行结果:
欢迎学习:Java
四、String类常用方法(4) a、静态重载方法
public static String valueOf(...)可以将基本数据类型转换为字符串。
b、方法public String[] split(String regex)可以将一个字符串按照指定的分隔符分隔,返回分隔后的字符串数组。
package com.hpe.string;
public class TestString4 {
public static void main(String[] args) {
int j = 1234567;
String sNumber = String.valueOf(j);
System.out.println("j是" + sNumber.length() + "位数");
String s = "Marry,F,1976";
String[] sPlit = s.split(",");
for(int i=0; i<sPlit.length; i++) {
System.out.println(sPlit[i]);
}
}
}
运行结果:
j是7位数
Marry
F
1976
四、练习
1、编写一个程序,输出字符串中的大写英文字母数,小写英文字母数以及非英文字母数。
下面程序列出了三种方法:
package com.hpe.string;
public class TestString5 {
public static void main(String[] args) {
String s = "AhkjJ3K4JlKD2gJ/[jHGgGFGFfhJK.;]-=trh";
int lCount = 0, uCount = 0, oCount = 0;
//使用charAt方法拿到无序字符串中指定位置的字符,并判断该字符的ASCII码值是否属于大小写字母范围。
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c >= 'a' && c <= 'z') {
lCount++;
} else if (c >= 'A' && c <= 'Z') {
uCount++;
} else {
oCount++;
}
}
/*
//使用基础类型包装类Character的静态方法isLowerCase和isUpperCase来判断无序字符串中指定的第i个字符串是否是大小写字母
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (Character.isLowerCase(c)) {
lCount++;
} else if (Character.isUpperCase(c)) {
uCount++;
} else {
oCount++;
}
}
*/
/*
//indexOf法(在大小写26个字母序列中索引指定的无序字符串中的第i个字符)
String sL = "abcdefghijklmnopqrstuvwxyz";
String sU = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
//indexOf方法用于在当前字符串序列中查找指定字符第一次出现的位置,如果未找到,返回-1
if (sL.indexOf(c) != -1) {
lCount++;
} else if (sU.indexOf(c) != -1) {
uCount++;
} else {
oCount++;
}
}
*/
System.out.println("小写字母:" + lCount);
System.out.println("大写字母:" + uCount);
System.out.println("其他字符:" + oCount);
}
}
运行结果:
小写字母:12
大写字母:15
其他字符:10
总结:
无非就是挨个儿判断给定字符串中的每一个字符是否是大写、小写英文字母、非英文字母。
从字符串中拿出指定位置的字符,使用String类的charAt()方法。
如str.charAt(5),返回str字符串中的第5个字符。
2、编写一个方法,输出在一个字符串中,指定字符串出现的次数。
实现思路:使用indexOf方法在字符串中查找指定字符序列(如"abc"),当找到了(返回值不为-1),将count++,indexOf方法的返回值为"abc"在字符串中第一次出现的位置,
将该位置记为index,并加上3("abc"的长度),在index+3的位置使用substring方法截子串,下次再对子串进行indexOf查找,以此类推,直到在剩下的找不到"abc"(indexOf方法返回-1),退出循环,打印count计数。
package com.hpe.string;
import java.util.Scanner;
public class TestString6 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String str = "sunssajavaijjavaokjaval[kujavajavayujava";
System.out.print("在" + str +"这个字符串序列中,请输入您要查找的字符内容:");
String strToFind = input.next();
int index = -1;
int count = 0;
while((index = str.indexOf(strToFind)) != -1) {
str = str.substring(index + strToFind.length());
count++;
}
System.out.println(strToFind + "出现了" + count + "次");
}
}
输入:java
运行结果:
java出现了6次