引用
上次发表了自己编写不区分大小查找的方法,这次使用了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;
}
分享到:
相关推荐
图2 grep不区分大小写 备注: grep使用方法: grep [选项] PATTERN 文件 grep -i “error” #忽略大小写区分 grep -v “grep” #忽略grep命令本身,在文档中过滤掉包含有grep字符的行 grep进程时忽略自身 我们在通过...
11. **大小写转换**: `toLower()`和`toUpper()`方法可以将字符串转换为全小写或全大写。 掌握这些操作后,开发者能够灵活地处理和操作QT环境中的字符串,进行复杂的文本处理任务。在实际项目中,如界面显示、文件...
该函数对大小写不敏感。如需对大小写敏感的搜索,请使用 strstr()。 例子: 例子 1 复制代码 代码如下: <?php echo stristr(“Hello world!”,”WORLD”); ?> 输出: world! 例子 2 复制代码
编写一个程序统计文本文件英文字母个数,不区分大小写,屏幕输出每个字母出现的次数。 参考:文件操作函数,fopen, fclose, fread, fgetc;使用MSDN查找相关帮助; 要求:代码的编写、变量定义等应以《Coding ...
由于我们要区分大小写,所以在这个过程中不会使用到转换字符大小写的操作。 下面是可能的实现步骤: 1. 定义函数入口和参数,包括两个字符串的地址和它们的长度。 2. 初始化计数器和指针,指向字符串2的起始位置。 ...
2. 忽略大小写:在某些情况下,可能需要忽略字符串的大小写。 3. 区分文件编码:不同的文件可能采用不同的字符编码(如ASCII、UTF-8、GBK等),确保工具能识别正确的编码以避免乱码问题。 五、效率优化: 1. 并行...
在VB中,标准的字符串函数如`StrComp`、`InStr`或`Like`默认是不区分大小写的。如果要在比较字符串时考虑大小写,我们需要采用一些特定的方法。以下是一些关键知识点: 1. **StrComp 函数**:这是VB中的字符串比较...
- **位置查找**:函数支持在 ANSI 字符串或常规字符串中查找子字符串的位置,同时提供区分大小写和不区分大小写的选项。在 64 位环境下,使用这些优化后的函数进行字符串搜索时,性能提升尤为显著,可以达到原始 `...
- `equals()`:比较两个字符串的内容是否相同,不区分大小写。 - `equalsIgnoreCase()`:比较两个字符串的内容是否相同,忽略大小写。 - `compareTo()`:按照字典顺序比较字符串,返回值可以判断两个字符串的相对...
除了基本的查找和替换,高级的字符串处理还包括不区分大小写的查找、全局替换(替换所有匹配项,而非仅第一个)以及使用正则表达式的复杂匹配。正则表达式是一种强大的模式匹配工具,能够处理复杂的查找和替换需求,...
这个功能是通过调用Windows API中的`lstrcpyn`和`lstrcmp`函数来完成的,同时,我们要特别注意区分大小写。 首先,我们需要了解`lstrcpyn`和`lstrcmp`这两个API函数的作用。`lstrcpyn`函数用于复制字符串,并限制了...
在这个例子中,`/S`表示搜索所有子目录,`/I`表示不区分大小写,`"example"`是你要查找的字符串,`*`代表所有文件。 压缩包中的`FindStr_chn`可能是一个中文版的`findstr`使用指南或教程,它可能会详细解释各种选项...
统计字符串中'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. **区分大小写/不区分大小写**:根据需求,用户可以选择是否区分查找字符串的大小写。 3. **全词匹配**:确保查找的字符串是完整单词,而不是部分匹配。 4. **反向查找**:从文件末尾开始查找,这在某些特定情况下...
14. strcasecmp:不区分大小写地比较两个字符串,返回值规则同strcmp。 15. strcat:连接两个字符串,将第二个字符串追加到第一个字符串的末尾。 16. strchr:查找字符串中第一个出现的指定字符,返回指向该字符的...
这些函数允许我们指定查找的条件,如是否区分大小写,是否全词匹配等。 替换字符串通常涉及到`str.replace()`方法,它会将字符串中的某个子串替换为另一个字符串。在Python中,`str.replace(old, new[, count])`...