常见的字符串函数:
- char charAt(int index) 获取指定角标处的字符
- int indexOf(int ch) 返回指定字符在此字符串中第一次出现出的索引
- int lastIndexOf(int ch) 返回指定字符在此字符串中最后一次出现出的索引
- int length() 返回字符串的长度
- substring(int beginIndex, int endIndex)返回一个新的字符串他是此序列的一个子序列
- boolean contains(String s)判断指定子串是否包含在s中
- boolean endsWith(String s)测试此字符串是否以指定的后缀结束
- boolean startsWith(String prefix) 测试此字符串从指定索引开始的字字符串是否以指定前缀开始
- int compareTo(String anotherString)按照字典顺序比较两个字符串的大小。返回值有负数 0 正数,负数 前者在后者ASCII之前,0 前者和后者相等,正数 前者在后者ASCII之后
- boolean equals(String anotherString)较两个字符串是否相等(比的是内容)
- boolean endsWith(String s)判断指定子串是否在s的结尾
- boolean equalsIgnoreCase(String anotherString) 忽略大小写比较两个字符串的大小
- boolean isEmpty() 判断字符串是否为空
- String replace(char oldChar, char newChar) 用一个新的字符代替原来的字符
- String toUpperCase() 将字符串转化为大写
- String trim()返回字符串的副本忽略前置空白和尾部空白
注意:
对字符串的修改永远都不是对其自身进行的修改字符串本身是不可变的!!!
对字符串的修改往往都是新建个字符串将修改后内容赋值并返回新的字符串
字符串练习题:
/*判断两字符串中相同的字符串*/
class Test03{
public static void main(String[] args){
}
public static void question4(){
String s1="PHP is best language";
String s2="Java is language";
boolean flag=true;
for(int len=s2.length();len>=1;len--){
for(int i=0,j=len-1;j<s2.length();i++,j++){
String sub=s2.substring(i,j+1);
// System.out.println(sub);
if(s1.contains(sub)){
flag=false;
System.out.println("结果就是["+sub+"]");
break;
}
}
if(!flag){
break;
}
}
}
/*问题3:删除字符串中的空格*/
public static void question3(){
String s=" ABCD ";
int left=0;
int right=s.length()-1;
while(s.charAt(left)==' '){
left++;
}
while(s.charAt(right)==' '){
right--;
}
String res=s.substring(left,right+1);
System.out.println("["+res+"]");
}
/*查找字符串2在1中出现的次数*/
public static void question1(){
String s1="12376128736123123612312312536123123";
String s2="12";
int count=0;
for(int i=0;i<s1.length()-s2.length()+1;i++){
String sub=s1.substring(i,i+s2.length());
if(sub.equals(s2)){
count++;
}
}
System.out.println("s2在s1中出现了"+count+"次");
}
/*判断是否是回文数*/
public static void question2(){
String s="1234321";
int left=0;
int right=s.length()-1;
boolean flag=true;
while(true){
if(s.charAt(left)==s.charAt( right)){
left++;
right--;
if(left>=right){
break;
}
}else{
flag=false;
break;
}
}
System.out.println("s是回文吗:"+flag);
}
}