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写查询一个字符串中是否包含另外一个字符串以及出现的次数的更多相关文章

  1. 在SQLSERVER中如何检测一个字符串中是否包含另一个字符串

    --当charindex返回值大于0时则包含 为0不包含 select CHARINDEX('456','123456')   SQL语句使用CHARINDEX函数,来测试一个字符串中是否包含另一个字 ...

  2. php字符串查找函数 php查找字符串中出现的次数函数substr_count,判断字符串中是否包含另一个字符串函数strpos

    php字符串查找函数 php查找字符串中出现的次数函数substr_count,判断字符串中是否包含另一个字符串函数strpossubstr_count($haystack, $needle [,$o ...

  3. 在sql server中如何检测一个字符串中是否包含另一个字符串

    select CHARINDEX('456','123456')   SQL语句使用CHARINDEX函数,来测试一个字符串中是否包含另一个字符串中的方法: 一.CHARINDEX函数介绍 1.函数功 ...

  4. C#判断字符串中是否包含一个子字符串是可以直接使用Contains()方法

    1. 以前判断一个字符串中是否包含另一个子字符串时,习惯使用 IndexOf(); string str = "ABC@QQ"; if(str.IndexOf("@&qu ...

  5. php 判断字符串中是否包含另一个字符串 strpos

    strpos (PHP 4, PHP 5, PHP 7) strpos — 查找字符串首次出现的位置 说明 strpos ( string $haystack ,  $needle [, int $o ...

  6. 判断一个字符串中是否包含另一个字符串(KMP、BF)

    判断一个字符串是否是另一个字符串的子串,也就是strstr()函数的实现,简单的实现方法是BF算法. 1.BF算法 int BF(char *s, char *p){ ; ; int j; while ...

  7. oracle判断一个字符串中是否包含另外一个字符串

    select * from a where instr(a,b)>0; 用于实现B字段是A字段中的某一部分的时候,要论顺序或者要相邻的字符. 如果想要不论顺序或者不相邻的字符时,定义函数可以实现 ...

  8. C# 如何判断字符串中是否包含另一个字符串?

    如  字符串1(str1)为:“你好怎么解决呢!”    字符串2(str2)为:“你好” 如果str1里面包str2 则 Response.Write("成功");否则 Resp ...

  9. [Robot Framework] 校验字符串中是否包含某个子字符串,校验同时满足两个条件中任意一个

    ${tWarningMessage} Run Keyword If ${tIfExist} AutoItLibrary.Win Get Text Generate Fee Data warning m ...

随机推荐

  1. OnTimer

    OnTimer不是多线程. OnTimer是以SendMessage的方式发送消息到消息队列. sendMessage必须等待对话框响应完消息后才返回.

  2. java 重载规则

    首先看Java重载的规则: 1.必须具有不同的参数列表: 2.可以有不同的返回类型,只要参数列表不同就可以: 3.可以有不同的访问修饰符: 4.可以抛出不同的异常: 5.方法能够在一个类中或者在一个子 ...

  3. Yii2使用教程

    安装 中文文档:http://www.yiichina.com/doc/guide/2.0/start-installation 1,安装 这里我直接下载归档文件,压缩包安装了.composer各种麻 ...

  4. Tomcat APR & Linux Optimization

    一.简介 APR(Apache portable Run-time libraries)模式:简单理解,就是从操作系统级别解决异步IO问题,大幅度的提高服务器的处理和响应性能, 也是Tomcat运行高 ...

  5. JavaScript实现快速排序

    思想: 通过分治思想.递归方法将数据依次分解为包含较小元素和较大元素的不同子序列 1.在数组中选择一个元素为基准 2.对数组进行遍历,小于基准的元素都移到基准的左边,大于基准的元素都移到基准的右边 3 ...

  6. 给libpcap增加一个新的捕包方法

    libpcap是一个网络数据包捕获函数库,功能非常强大,提供了系统独立的用户级别网络数据包捕获接口,Libpcap可以在绝大多数类unix 平台下工作.大多数网络监控软件都以它为基础,著名的tcpdu ...

  7. 20169212《Linux内核原理与分析》第八周作业

    理论 task_struct的结构关系 非常庞大的数据结构,400多行代码.包括对进程链表的管理,控制台,文件系统描述,文件描述符,内存管理描述,信号描述等. 创建一个新进程在内核中的执行过程 for ...

  8. Codeforces Round #375 (Div. 2) F. st-Spanning Tree

    传送门 分析:构造题.可以这么想:先把s,t两个点去掉,把剩下的点先并查集合并.这样会出现个集合:, , 个剩余集合.那么个集合中先把只能与或中一个相连的连起来,如果这样已经超出了要求,那么就不能构造 ...

  9. Android开发--apk的生成

    0.前言 此方法为eclipse中生成apk的方法!!!! 1.生成ketstore 在命令提示符中找到java的jdk路径,例如: D:\study software\Java\jdk1.8.0_2 ...

  10. mysql取前几行数据limit用法

    转自http://www.cnblogs.com/study100/archive/2013/07/30/3224250.html 在mysql中是没有top关键字的,在mysql中可以用limit来 ...