java 字符串中快速查找对应的字符

Java实现字符串的包含 1 问题描述 给定一长字符串A和一短字符串B。请问,如何最快地判断出短字符串B中的所有字符是否都在长字符串A中?请编写一个判断函数实现此功能。 为简单起见,假设输入的字符串只包含小写英文字母。下面举几个例子。 (1)如果字符串A是”abcd”,字符串B是”bad”,答案是包含,因为字符串B中的字母都在字符串A中,或者说B是A的真子集。 (2)如果字符串A是”abcd”,字符串B是”bce”,答案是... 阅读详情

碰到一个面试,快速的查找字符串的某个字符第一次出现的位置,还不能直接的使用用java现有indexof等方法

String input = "allaaaa";

String query = "ll";

现有的方法:

1、indexof

return input.indexOf(query);

2、split

String[] s = input.split(query);
if (s.length > 1) {// 说明有 如果等于1 说明没有
    return s[0].length();
}

3、正则匹配

Matcher matcher = Pattern.compile(query).matcher(input);
if (matcher.find()) {
    return matcher.start();
}

以上的方法都不能用

思考了一下,这个面试题不是拐着弯问indexof的内部实现么?

真是。。。

思路就是把两个String 变成char[],然后一个一个的对比,并记录匹配的次数,如果匹配的次数等于查找字符串的长度就停止检索,不相等就清空匹配测试

        char[] inputArray = input.toCharArray();
        char[] queryArray = query.toCharArray();

        int inputLength = input.length();
        int queryLength = query.length();

        int inputIndex = 0;
        int queryIndex = 0;

        if (queryLength > inputLength) {
            return -1;
        }

        while (inputIndex < (inputLength - queryLength)) {
            if (inputArray[inputIndex] == queryArray[queryIndex]) {
                inputIndex ++;
                queryIndex ++;
            } else {
                inputIndex ++;
                queryIndex = 0;
            }

            if (queryIndex == queryLength) { // 说明找到了
                break;
            }
        }

        return queryIndex == queryLength ? (inputIndex - queryLength) : -1;

 

 

通配符测试: 实现通配符匹配的 Java 程序 在编程中,通配符是一种用于匹配字符串模式的特殊字符。在 Java 中,我们可以使用通配符来进行字符串的匹配操作。本文将介绍如何实现通配符匹配的 Java 程序,并提供相应的源代码。然后,我们使用两个嵌套的循环来遍历字符串和模式的每个字符。我们根据字符的匹配情况来更新二维数组中的值。通过以上代码,我们可以实现通配符匹配的功能。方法中,我们使用字符串 “hello” 和模式 “h*o” 进行了测试,并输出匹配结果。最后,我们返回二维数组的最后一个元素,即整个字符串是否与模式匹配。’ 可以匹配任意数量的字符。 阅读详情

相关推荐

【硬件自锁开关】用两个D触发器完成实用的自锁开关电路

性价比是做电子设计的人要考虑的事,在学会了用单片机解决大多数问题的时候,是否你也想过用简单的手段解决一个多数场合要解决的问题呢?按一下,输出状态由关闭变成开启,再按一下开启变成关闭。机械弹簧式的开关可以实现自锁的功能:钩子和弹簧将当前状态“储存”起来,这个能量为下一次触发的提供状态“翻转”的动力;在电子设计中,经常通过单片机的程序指令实现自锁:通过寄存器将当前电平状态暂存起来,下一次触发的时候寄存器内容“取反”,再将其输出到端口。可否用电路实现以上过程呢?完全可以,方案很简单,通过两个D触发器即可实现。

qq_33175704的博客 4261

java string通配符_java 实现字符串通配符

哦,没注意最上面的方法啊。*:匹配0个或以上的字符(字符由英文字母和数字0-9组成,不区分大小写。下同)?:匹配1个字符privatestaticbooleanwildMatch(Stringpattern,Stringstr){String[]strs={"0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"...

weixin_36221149的博客 1784

第一届“龙信杯”电子数据取证竞赛Writeup

第一届“龙信杯”电子数据取证竞赛Writeup

toto的博客 1万+

java在字符串数组中查找特定字符串

在 Java 中,可以使用 for 循环或者 Java 8 中的 Stream API 来在字符串数组中查找特定字符串。 例如: 使用 for 循环: String[] strArray = {"hello", "world", "java"}; String target = "java";boolean found = false; for (String s : strArray) { ...

weixin_42594427的博客 2358

西门子S7-1200/1500 PLC编程与应用技巧

西门子S7-1200 PLC是一款紧凑型的控制器,适用于小型到中型的自动化控制任务。紧凑设计:集成了I/O模块,减少了控制柜的空间需求。高性能:高达25µs的扫描时间,能够快速响应。模块化扩展:支持扩展输入输出模块、通信模块和智能模块,满足不同的应用需求。多种编程语言:支持Ladder图(梯形图)、功能块图(FBD)、结构化文本(ST)等多种编程语言。西门子S7-1200与S7-1500 PLC是强大且灵活的工业控制系统,适用于各种自动化应用。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 2673

Oracle EBS报表开发入门:Report Builder安装避坑指南(Win10/11兼容版)

本文详细介绍了在Windows 10/11系统上成功安装和配置Oracle Report Builder的完整避坑指南。通过修改系统兼容性、解决虚拟内存报错、正确设置NLS_LANG和TNS连接等关键步骤,确保开发环境稳定运行。同时,阐述了Report Builder与BI Publisher在现代Oracle EBS报表开发中的协作定位与工作流,帮助开发者高效搭建报表开发环境。

d6e7f8的博客 754

java string的某个字符_JAVA如何提取String中字符串的某个字符 具体内容

今天小编和大家分享JAVA如何提取String中字符串的某个字符,希望对大家有所帮助。工具/材料PC操作方法01java中提取特定字符前的字符串:String str = "房估字(2014)第YPQD0006号";String jieguo = str.substring(str.indexOf("第")+1,str.indexOf("号"))。02//截取#之前的字符串;Stringstr...

weixin_33066433的博客 1万+

kaggle——销量预测的baseline(M5 Forecasting - Accuracy)

前言 在刚刚结束的kaggle比赛M5 Forecasting - Accuracy中,因为是第一次参加,笔者也是花了大量的时间和精力在上面,最终拿到一块银牌(所以我拿到了大学第一个考试挂科。。。求求电磁场老师高抬贵手给点平时分放我一马吧。。。早上看到kaggle成绩异常兴奋,中午考完直接爆炸=。=),当然运气占了很大因素,这次比赛private leadboard的shake up非常大,排名波动几千名都存在的。笔者运气不错,是向上的shake:)。这里总结一下销量预测的基本流程。 从下图可以看到这次比

weixin_43901221的博客 5432

Java数字和字符的对照关系表

/*数字和字符的对照关系表(编码表): ASCII码表:American Standard Code for Information Interchange,美国信息交换标准代码。 Unicode码表:万国码。也是数字和符号的对照关系,开头0-127部分和ASCII完全一样,但是从128开始包含更多字符。 48 - ‘0’ 65 - ‘A’ 97 - ‘a’ */ public class Demo03DataTypeChar{ public static void main(String[] args){

weixin_47894020的博客 3077

huggingface下载提示huggingface_hub.errors.EntryNotFoundError:404 Client Error: (Request 1D: Root...如何解决?

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 1232

《MySQL 入门教程》第 03 篇 管理数据库

本篇主要介绍 MySQL 数据库的创建、查看、选择和删除操作,包括使用 mysql 命令行和 MySQL Workbench 图形工具两种方式。

Tony.Dong的专栏 3525

探索字符串

低位优先算法会从右到左检查键(字符串)中的字符来完成字符串排序。这种算法适合用于键(字符串)的长度都相同的字符串排序,而且也是稳定的(依赖键索引计数法的实现)。

weixin_59501920的博客 1930

Codex、Claude Code、Opus、Trae、Cursor:一文讲懂 2026 AI 编程工具格局

2026年AI编程工具将形成三层体系:模型层(Opus/Codex)负责思考,执行层(Claude Code/Codex Agent)负责自动开发任务,工具层(Cursor/Trae)提供AI集成的开发环境。关键区别在于Agent路线强调AI主导自动化开发,而IDE路线保持人类主导。未来竞争力取决于能否将AI整合为生产力系统,掌握模型推理、Agent任务编排和AI IDE协同三大能力。核心转变是从"写代码"升级为"指挥AI写代码",高级玩家通过组合不同层级工具构建自动

m0_51738372的博客 2692

java中ch代表什么_java中的indexOf是什么意思

java中的indexOf表示索引,它可以在给定字符串中查找字符,并返回字符所对应的下标,如果找不到,则返回【-1】。indexOf有四种用法:(推荐教程:java课程)1.indexOf(int ch)在给定字符串中查找字符(ASCII),找到返回字符数组所对应的下标找不到返回-12.indexOf(String str)在给定符串中查找另一个字符串。3.indexOf(int ch,int f...

weixin_33783283的博客 896

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

sqlite mysql 连接字符串_2、Java应用中常见的JDBC连接字符串(SQLite、MySQL、Oracle、Sybase、SQLServer、DB2)...

2、Java应用中常见的JDBC连接字符串Java应用中连接数据库是不可或缺的,于是便整理一些可能用到的JDBC的jar包及其相匹配的URL,以备日后查阅。1)SQLiteClass.forName("org.sqlite.JDBC");Connection conn =DriverManager.getConnection("jdbc:sqlite:zieckey.db");//建立一个数据库名...

weixin_28972665的博客 254

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

java enum 汉字_java enum字符串匹配

我有一个枚举如下:public enum ServerTask {HOOK_BEFORE_ALL_TASKS("Execute"),COPY_MASTER_AND_SNAPSHOT_TO_HISTORY("Copy master db"),PROCESS_CHECKIN_QUEUE("Process Check-In Queue"),...}我还有一个字符串(比如string =“Execute”...

weixin_36350504的博客 738

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

JAVA字符串前补零和后补零的快速方法

JAVA字符串前补零和后补零的快速方法 String fileName = "130181"; System.out.println("================ 前补零方法一 ================="); DecimalFormat g1=new DecimalFormat("0000000"); Stri...

凌大大的博客 9万+

java定位字符串_java 查找字符串所在的位置代码

使用了 String 类的 indexOf() 方法在字符串中查找子字符串出现的位置,如过存在返回字符串出现的位置(第一位为0),如果不存在返回 -1。方便判断和截取字符串!语法:stringObject.indexOf(searchvalue,fromindex)参数 描述searchvalue 必需。规定需检索的字符串值。fromindex 可选的整数参数。规定在字符串中开始检索的位置。它的合...

weixin_31263419的博客 2316

【Python】字符串几个常用查找方法

学习字符串常用操作方法,无非就是学习操作函数,对于操作函数有大量的函数,不过只需要记忆工作中常用的就可以了,但对于不常用工作中遇到的我们要学习查找字典。 对于操作函数重点从以下三点去学习: 第一点:记住函数的名字; 第二点:记住函数的作用; 第三点:记住函数参数传递的方式也就是函数参数的写法。 字符串常用操作方法有查找、修改和判断三大类。 一、字符串常用操作方法 - 查找含义 所谓字符串查找方法即是查找子串在字符串中的位置或出现的次数。 二、查找方法分类和用法 2...

m0_64829783的博客 2万+

Java字符串查找

Java字符串查找

m0_69505153的博客 386

Java三种方法实现字符串排序

Java字符串排序 文章目录Java字符串排序排序方法概述键索引计数法低位优先的字符串排序(LSD)高位优先的字符串排序(MSD)三向字符串快速排序 排序方法概述 对于许多应用,决定顺序的键都是字符串。本篇讲述如何利用字符串的特殊性质来对其进行高效的排序。 第一类方法会从右到左检查键中的字符。这种方法一般被称为低位优先(Least-Significant-DigitFirst,LSD)的字符串排序。如果将一个字符串看做一个256进制的数字,那么从右向左检查字符串就等价于先检查数字的最低位。这种方法最适合

像写诗一样优雅地写代码~ 3万+

Java如何实现截取字符串

Java中实现截取字符串的几种方式

程序员大腾的博客 1万+

Java查找字符串(indexOf()、lastlndexOf()和charAt())

字符串查找分为两种形式:一种是在字符串中获取匹配字符(串)的索引值,另一种是在字符串中获取指定索引位置的字符。 根据字符查找 String 类的 indexOf() 方法和 lastlndexOf() 方法用于在字符串中获取匹配字符(串)的索引值。 1. indexOf() 方法 indexOf() 方法用于返回字符(串)在指 定字符串中首次出现的索引位置,如果能找到,则返回索引值,否则返...

jijiangpeng的博客 1128

java 查找字符串所在的位置_java 查找字符串所在的位置

使用了 String 类的 indexOf() 方法在字符串中查找子字符串出现的位置,如过存在返回字符串出现的位置(第一位为0),如果不存在返回 -1。方便判断和截取字符串!语法:stringObject.indexOf(searchvalue,fromindex)参数 描述searchvalue 必需。规定...

weixin_39972996的博客 1551

java在文本中找字符串,Java 快速查找,从众多文本中查找含有某字符串的文件有哪几个...

Java 快速查找,从众多文本中查找含有某字符串的文件有哪几个发布时间:2018-10-26作者:laosun阅读(2430)快速从众多的文件中,查询哪个文件含有这句话。快速从文件中查找出含有这句话的文件是哪几个最近博主有一个需求,就是从300多个配置文件中,找出那项配置在哪个文件中,相信一般的才做可能会非常麻烦,虽然有的工具有个功能就是查找打开的文件,但是首先你得全部打开。博主无奈之下,自己写了...

weixin_35241415的博客 354

Java将字符串变成对应正则

    有时候, 我们不想动脑筋根据某个内容来写对应正则, 这个时候, 我们就想, 如果直接把这段子串复制一下, 得到对应的正则该多好.为了多偷一会懒, 所以写一个简单的实现.     大家都是明白人, 直接上代码, 有些说明我已经写在注释里面了, 原理很简单, 一看就懂.     package com.ysm.parse; import java.util.ArrayList; i...

weixin_41771503的博客 4423
上一篇: 记录一下 adb 命令行
下一篇: 绘制路径canvas.drawpath 问题
D调的忧伤
博客等级 码龄14年 2粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值