返回字符串对象的长度。
String string = "abcd";
int len = string.length();
System.out.println(len);
运行结果为:
4
char charAt(int index) 返回指定索引处的char值(即截取一个字符)。
String str = "hello world";
char ch = str.charAt(6);
System.out.println(ch);
运行结果为:
w
String类中的compareTo()方法将返回两个字符串对象的比较结果。如果按字典顺序此 String 对象位于参数字符串之前,则比较结果为一个负整数,如果按字典顺序此 String 对象位于参数字符串之后,则比较结果为一个正整数。若相等,返回0。
不相等时,从两个字符串第1个字符开始比较,返回第一个不相等的字符差。如果较长字符串的前面部分恰巧是较短的字符串,返回它们的长度差。
String s1 = "abc";
String s2 = "abcd";
String s3 = "abcdfg";
String s4 = "1bcdfg";
String s5 = "b";
System.out.println(s1.compareTo(s2));
System.out.println(s1.compareTo(s3));
System.out.println(s1.compareTo(s4));//48 ("a"的ASCII码是97,"1"的的ASCII码是49,所以返回48)
System.out.println(s1.compareTo(s5));//-1 ("a"的ASCII码是97,"b"的ASCII码是98,所以返回-1)
运行结果为:
-1
-3
48
-1
在String类中有两个substring()方法,第一种如下:
substring(int start)
其中,start为要开始截取的位置的索引,方法将返回一个字符串,内容为原字符串从start位置开始到原字符串结束中间的数据。
如果start大于字符串的长度,将会抛出越界异常。
String str = "hello word!";
System.out.println(str.substring(1));
System.out.println(str.substring(3));
System.out.println(str.substring(6));
运行结果为:
ello word!
lo word!
word!
第二种substring()方法:
substring(int start, int end)
其中,start为开始位置索引,end为结束为止索引,方法将返回一个字符串,内容为原字符串从start位置开始到end位置结束中间的数据。
注:包括start位置,但不包括end位置。
String str = "hello word!";
System.out.println(str.substring(1, 4));
System.out.println(str.substring(3, 5));
System.out.println(str.substring(0, 4));
运行结果为:
ell
lo
hell
indexOf()方法用于在String类的对象中查找子字符串,方法返回一个整数值,为子字符串的开始位置,若存在多个子字符串,返回数值最小的整数值;如果没有找到子字符串,返回-1。
String str1 = "abcdefghijklmnabc";
System.out.println(str1.indexOf("c"));
System.out.println(str1.indexOf("x"));
运行结果为:
2
-1
indexOf()方法可以有两个参数,可以从指定的位置进行查找。
lastIndexOf()方法返回子串最后一次出现的位置。
在java中如果要判断两个基础数据类型是否相等,使用的是双等号,例如:1是否等于1,使用的就是1==1,而判断字符串是否相等需要使用equals方法,这是因为,每一个字符串都可能会有不同的内存地址,而 == 判断的是内存地址是否一致。而有很多情况,两个字符串的内存地址是不同的,但是字符串的值都是一致的,这样使用双等号就不能准确的验证他们是否相等了。
String str1 = new String("张三");
String str2 = new String("张三");
System.out.println(str1 == str2);
System.out.println(str1.equals(str2));
运行结果为:
false
true
根据给定正则表达式的匹配拆分此字符串。
特殊情况:
| + * ^ $ / | [ ] ( ) - . \ 由于这些字符是正则表达式的一部分,因此在split方法中表示它们需要用转义符。
String str = "abc.def.ghi.jk";
String str1[] = str.split("\\.");
for(int i = 0; i < str1.length; i++)
System.out.print(str1[i] + " ");
运行结果为:
abc def ghi jk
int length() 返回当前字符串的长度
int indexOf (String str) 返回str子字符串在该字符串中第一次出现的位置
int lastIndexOf(String str) 查找str子字符串中最后一次出现的位置
boolean equals(Object obj) 将该字符串与指定对象比较,返回true或false
String trim() 返回取出了前后空格的字符串
String[] split(String str) 将字符串按照str来分割,分割之后返回一个字符串数组
String toLowerCase() 将字符串中的大写全部转换为小写
String toUpperCase() 将字符串中的小写全部转换为大写
public void judge(String fileName, String email){
if(fileName.lastIndexOf(".java") == fileName.length() - 5 && fileName.length() != 5)
System.out.println("Java文件名正确");
else
System.out.println("Java文件名无效");
if(email.indexOf(".") > email.lastIndexOf("@") && email.lastIndexOf("@") != -1)
System.out.println("邮箱名正确");
else
System.out.println("邮箱名无效");
}
public class NameSearch {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String data = scanner.next();
String name = scanner.next();
int index = 0;
while(data.indexOf(name, index) != -1) {
index = data.indexOf(name, index);
System.out.println(index);
index += 1;
}
}
}
import java.util.Scanner;
public class StringTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.next();
int index = str.indexOf(".");
index ++;
int index2 = str.indexOf(".", index);
String str1 = str.substring(index, index2); //定位域名主体位于两个"."之间
System.out.println(str1);
String str2 = str1.toUpperCase();//小写转换成大写
System.out.println(str2);
}
}