用JAVA写查询一个字符串中是否包含另外一个字符串以及出现的次数
Posted 三斗君
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用JAVA写查询一个字符串中是否包含另外一个字符串以及出现的次数相关的知识,希望对你有一定的参考价值。
package JAVA;
import java.awt.List;
import java.util.ArrayList;
/**
*
* @author 梁小鱼
*
*/
public class MyTest {
public static void main(String[] args) {
//查找字符串在目标字符串是否存在
Boolean isExit = IsExit("f","abfsdfsdkjl;fas;dlfsldf;asdfsdfaszdf");
System.out.println(isExit);
}
private static Boolean IsExit(String strson, String strmother ) {
//设置是否存在标志位
Boolean Isflag = false;
// 获得母串的长度
Integer strmotherLength = strmother.length();
// 获得子串的长度
Integer strsonLength = strson.length();
if (strmother==null||strmotherLength<strsonLength||strson.equals("")||strson==null) {
return false;
}
System.out.println("输入的母串为:" + strmother);
System.out.println("输入的子串为:" + strson);
//存放结果的数组
ArrayList<Boolean> reasonArr = new ArrayList<Boolean>();
//字符出现次数
Integer appTime = 0;
//将母串转为字符数组
char[] charArrayMother = strmother.toCharArray();
//以子串长度为单位遍历母串数组
for (int i = 0; i < (charArrayMother.length - strsonLength +1); i++) {
//遍历起点为0,终点为数组长度减去子串长度
//以子串长度 为最小单位 遍历比较
//写一个比较的字方法,传入的参数有母串数组,当前遍历位置,子串
Integer flag = compare(charArrayMother,strson,i);
if (flag == 1) {
reasonArr.add(true);
}else {
reasonArr.add(false);
}
}
//在此结算
for (Boolean bool : reasonArr) {
if (bool==true) {
appTime += 1;
}
}
System.out.println("字符:" + strson + " 在 " + strmother + " 中出现的次数为:" + appTime + "次!");
if (appTime>0) {
return true;
}
return Isflag;
}
/**
* 处理比较的方法
* @param charArrayMother
* @param strson
* @param i
* @return
*/
private static Integer compare(char[] charArrayMother, String strson, int i) {
// 取出当前遍历位置,所形成的子串长度单位的字符
// 创建一个字符床存放拿出来的字符
String comstr = "";
for (int j = 0; j < strson.length(); j++) {
char c = charArrayMother[i+j];
comstr += String.valueOf(c);
}
System.out.println("第"+ (i+1) + "截取的字符串为:" + comstr);
if (strson.equals(comstr)) {
return 1;
}
return 0;
}
}
以上是关于用JAVA写查询一个字符串中是否包含另外一个字符串以及出现的次数的主要内容,如果未能解决你的问题,请参考以下文章
MYSQL语句,如果想搜索一个字段是不是包含某字符串应该怎么写
急急急 用java 怎么写lotus 的domino数据库多条件查询 包含时间段查询 在线等