package zhao;import java.util.regex.Matcher; import java.util.regex.Pattern;public class Test {
public static void main(String args[]) { String s ="student study start"; Pattern p = Pattern.compile("\\s*st"); Matcher m = p.matcher(s); int i = 0;//st的个数 while(m.find()) { i++; } System.out.println(i); } }
import java.util.regex.Matcher; import java.util.regex.Pattern;public class Test {
public static void main(String args[]) { String s ="student study start"; Pattern p = Pattern.compile("\\s*st"); Matcher m = p.matcher(s); int i = 0;//st的个数 while(m.find()) { i++; } System.out.println(i); } }
返回第一次出现的指定子字符串在此字符串中的索引。
split(String regex)
根据给定的正则表达式的匹配来拆分此字符串。
substring(int beginIndex, int endIndex)
返回一个新字符串,它是此字符串的一个子字符串。
replace(char oldChar, char newChar)
返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 而生成的。--------------------------------------------
这些东东 lz自己想想 组合一下都可以达到想要的结果~
但是先得用indexOf(“st”)得到该字串的第一次出现的位置 ,同时用lastIndexOf(“st”)的得到最后的位置,依次就可以得到全部的,但这样效率不高,建议用正则表达式
用这个方法就可以实现了。
public class Substring {
//private String[] str = {"Aabcdeabdabcfgabcg","abc"};
private String str1 = "Aabcdabceabcgabc";
private String str2 = "abc";
public Substring() {
System.out.println(str1.length());
System.out.println(str2.length());
}
public String getStr() {
return str1;
}
public String getSubstr() {
return str2;
}
public int countStr() {
int i = 0;
int count = 0;
while((i + str2.length()) <= str1.length()) {
//System.out.println(str1.substring(i,i+str2.length()));
if(str2.equals(str1.substring(i,i+str2.length()))) {
count++;
i = i + str2.length();
} else {
i++;
}
}
return count;
}
public static void main(String[] args) {
Substring sub = new Substring();
System.out.println("-------------------------------");
System.out.println("字符串A: " + sub.getStr());
System.out.println("字符串B: " + sub.getSubstr());
System.out.println("-------------------------------");
System.out.println("字符串A中有" + sub.countStr() + "个字符串B:");
}
}
package zhao;import java.util.regex.Matcher;
import java.util.regex.Pattern;public class Test
{
public static void main(String args[])
{
String s ="student study start";
Pattern p = Pattern.compile("\\s*st");
Matcher m = p.matcher(s);
int i = 0;//st的个数
while(m.find()) {
i++;
}
System.out.println(i);
}
}
public static void main(String[] args) {
// TODO 自动生成方法存根
String str = "student study start";
String[] str1 = str.split("st");
if(str.contains("st")){
System.out.println("st的数目为:" + (str1.length -1) + "个");
}
else
System.out.println("没有找到");
}
import java.util.regex.Pattern;public class Test
{
public static void main(String args[])
{
String s ="student study start";
Pattern p = Pattern.compile("\\s*st");
Matcher m = p.matcher(s);
int i = 0;//st的个数
while(m.find()) {
i++;
}
System.out.println(i);
}
}
这个方法会有bug,大家试试看~~ ^+^
送上一个测试的字符串 "student study st"