`
沙漠绿树
  • 浏览: 430229 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

不区分大小写查找字符串(二)

JDK 
阅读更多
引用
    上次发表了自己编写不区分大小查找的方法,这次使用了String对象中自带的方法regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len),再稍加变通编写了不区分大小写查找的方法。这边比上次写更简洁,效率方面我没有比较。大家可以自己测试下。我个人认为跟上次的比较有区别,这里不区分大小不仅仅是26英文字母的大小,还有一些我们不知道的字母的大小也不区分。原因是从JDK的API文档中Character类中isLetter(char ch)方法的解释了解到,JAVA中指的字母,除了26个英文字母,还有别的字母,他们也有的有大小写,所以大家要注意。



public class StringUtil {

	public static void main(String[] args) {
	
		String t="aaaaaaaaaa<table></table>aaa<table></table>";
		String s="<TABLE";
		
//		t="";
		
		System.out.println("length="+t.length());
		
		System.out.println(t.indexOf(s,0));
		System.out.println(ignoreIndexOf(t, s,0));
				
		System.out.println(t.lastIndexOf(s));
		System.out.println(ignoreLastIndexOf(t, s));
	}
	
	public static int ignoreIndexOf(String subject,String search){
		return ignoreIndexOf(subject,search,0);
	}
	
	public static int ignoreIndexOf(String subject,String search,int soffset){
		//当被查找字符串或查找子字符串为空时,抛出空指针异常。
		if (subject == null || search == null) {
			throw new NullPointerException("输入的参数为空");
		}
		if(soffset>=subject.length() && search.equals("")){
			return subject.length();
		}
		for (int i = soffset; i < subject.length(); i++) {
			if(subject.regionMatches(true, i, search, 0, search.length())){
				return i;
			}
		}
		return -1;
	}
	
	public static int ignoreLastIndexOf(String subject,String search) {
		return ignoreLastIndexOf(subject, search, subject.length());
	}
	
	public static int ignoreLastIndexOf(String subject,String search,int soffset) {
		//当被查找字符串或查找子字符串为空时,抛出空指针异常。
		if (subject == null || search == null) {
			throw new NullPointerException("输入的参数为空");
		}
		if(soffset<=0 && search.equals("")){
			return 0;
		}
		for (int i = soffset; 0 < i; i--) {
			if(subject.regionMatches(true, i, search, 0, search.length())){
				return i;
			}
		}
		
		return -1;
	}
分享到:
评论

相关推荐

    linux grep不区分大小写查找字符串方法

    图2 grep不区分大小写 备注: grep使用方法: grep [选项] PATTERN 文件 grep -i “error” #忽略大小写区分 grep -v “grep” #忽略grep命令本身,在文档中过滤掉包含有grep字符的行 grep进程时忽略自身 我们在通过...

    QT中字符串的比较、查找、替换等操作 - 大存的博客1

    11. **大小写转换**: `toLower()`和`toUpper()`方法可以将字符串转换为全小写或全大写。 掌握这些操作后,开发者能够灵活地处理和操作QT环境中的字符串,进行复杂的文本处理任务。在实际项目中,如界面显示、文件...

    PHP stristr() 函数(不区分大小写的字符串查找)

    该函数对大小写不敏感。如需对大小写敏感的搜索,请使用 strstr()。 例子: 例子 1 复制代码 代码如下: &lt;?php echo stristr(“Hello world!”,”WORLD”); ?&gt; 输出: world! 例子 2 复制代码

    编写一个程序统计文本文件英文字母个数,不区分大小写,屏幕输出每个字母出现的次数。

    编写一个程序统计文本文件英文字母个数,不区分大小写,屏幕输出每个字母出现的次数。 参考:文件操作函数,fopen, fclose, fread, fgetc;使用MSDN查找相关帮助; 要求:代码的编写、变量定义等应以《Coding ...

    用MASM32来DIY一个判断字符串1是否为字符串2的子串的函数演示代码(源码+exe)(应用repe cmpsb指令,区分大小写)

    由于我们要区分大小写,所以在这个过程中不会使用到转换字符大小写的操作。 下面是可能的实现步骤: 1. 定义函数入口和参数,包括两个字符串的地址和它们的长度。 2. 初始化计数器和指针,指向字符串2的起始位置。 ...

    多个文件中查找字符串

    2. 忽略大小写:在某些情况下,可能需要忽略字符串的大小写。 3. 区分文件编码:不同的文件可能采用不同的字符编码(如ASCII、UTF-8、GBK等),确保工具能识别正确的编码以避免乱码问题。 五、效率优化: 1. 并行...

    VBHOOK区分大小写代码

    在VB中,标准的字符串函数如`StrComp`、`InStr`或`Like`默认是不区分大小写的。如果要在比较字符串时考虑大小写,我们需要采用一些特定的方法。以下是一些关键知识点: 1. **StrComp 函数**:这是VB中的字符串比较...

    Delphi fast Pos & StringReplace:搜索/替换(ansi)字符串,区分大小写,32 位和 64 位-开源

    - **位置查找**:函数支持在 ANSI 字符串或常规字符串中查找子字符串的位置,同时提供区分大小写和不区分大小写的选项。在 64 位环境下,使用这些优化后的函数进行字符串搜索时,性能提升尤为显著,可以达到原始 `...

    String 字符串操作、比较、查找字符、替换、反转、分割等

    - `equals()`:比较两个字符串的内容是否相同,不区分大小写。 - `equalsIgnoreCase()`:比较两个字符串的内容是否相同,忽略大小写。 - `compareTo()`:按照字典顺序比较字符串,返回值可以判断两个字符串的相对...

    字符串查找替换

    除了基本的查找和替换,高级的字符串处理还包括不区分大小写的查找、全局替换(替换所有匹配项,而非仅第一个)以及使用正则表达式的复杂匹配。正则表达式是一种强大的模式匹配工具,能够处理复杂的查找和替换需求,...

    用MASM32来DIY判断字符串1是否为字符串2的子串的函数演示代码(源码+exe)(应用lstrcmp,区分大小写)

    这个功能是通过调用Windows API中的`lstrcpyn`和`lstrcmp`函数来完成的,同时,我们要特别注意区分大小写。 首先,我们需要了解`lstrcpyn`和`lstrcmp`这两个API函数的作用。`lstrcpyn`函数用于复制字符串,并限制了...

    查找字符、字符串

    在这个例子中,`/S`表示搜索所有子目录,`/I`表示不区分大小写,`"example"`是你要查找的字符串,`*`代表所有文件。 压缩包中的`FindStr_chn`可能是一个中文版的`findstr`使用指南或教程,它可能会详细解释各种选项...

    西南交通大学计算机程序设计基础-实验11-C++.docx

    统计字符串中'a'字符(不区分大小写)的个数。遍历字符串,检查每个字符是否等于'a'或'A',并累加计数。例如: ```cpp if (s1[i] == 'a' || s1[i] == 'A') sum++; ``` 3. **字母加10**: 将字符串中的每个...

    在文本中查找替换字符串程序

    忽略大小写可以使查找不区分大小写,全词匹配则可以确保只匹配完整的单词而不是子串。正则表达式是一种强大的模式匹配工具,能够处理复杂的查找和替换需求,例如匹配连续数字、邮箱地址等。 在实际使用过程中,用户...

    任意文档内查找字符串

    /i 表示不区分大小写 可以参考help findstr的输出解释来使用此命令。 注意: findstr.exe一般在C:\Windows\System32目录下,要从任意路径调用该命令,需要将C:\Windows\System32添加到path环境变量中

    字符串查找替换工具2.2

    2. **区分大小写/不区分大小写**:根据需求,用户可以选择是否区分查找字符串的大小写。 3. **全词匹配**:确保查找的字符串是完整单词,而不是部分匹配。 4. **反向查找**:从文件末尾开始查找,这在某些特定情况下...

    字符串处理函数列表,字符串处理函数列表

    14. strcasecmp:不区分大小写地比较两个字符串,返回值规则同strcmp。 15. strcat:连接两个字符串,将第二个字符串追加到第一个字符串的末尾。 16. strchr:查找字符串中第一个出现的指定字符,返回指向该字符的...

    字符串查找替换器,不但可替换还可以查找

    这些函数允许我们指定查找的条件,如是否区分大小写,是否全词匹配等。 替换字符串通常涉及到`str.replace()`方法,它会将字符串中的某个子串替换为另一个字符串。在Python中,`str.replace(old, new[, count])`...

Global site tag (gtag.js) - Google Analytics