为什么lastindexof查找空字符串返回的是字符串长度

为什么lastindexof查找空字符串返回的是字符串长度,第1张

原因如下:
1、lastIndexOf()是JavaScript字符的内置方法,用于查找指定字符串在另一个字符串中最后一次出现的位置。如果指定字符串不存在,则返回-1。
2、当使用lastIndexOf()查找空字符串时,它会返回该空字符串最后一次出现的位置(即字符串的长度)。这是因为空字符串可以出现在任何位置,包括开头、中间和结尾,因此lastIndexOf()会从字符串的末尾开始向前搜索,并返回最后一个空字符串出现的位置(如果没有出现则返回-1)。
3、另外,如果要查找的字符串不是空字符串,lastIndexOf()方法将按照正常的方式从后向前搜索并返回最后一个匹配项的索引位置。

列出如下三种方法。1、2较为直接,但理解较难。

3 *** 作稍显麻烦,但是易于理解且可作其它相关输出。

1、=MAX((MID(A1,ROW($A:$A),1)="A")ROW($A:$A))

该公式需要使用数组:Ctrl+shift+enter

2、=LOOKUP(1,0/(MID(A1,COLUMN(1:1),1)="A"),COLUMN(1:1))

3、VBA自定义函数

Alt+F11打开VBA运行框

插入模块

复制如下代码到代码框内

在该sheet内即可使用函数lastC函数,内部包含两个参数,字符串和查找的字符。

Function LastC(myRange As Range, myC As String)
If myRange = "" Or Len(myC) <> 1 Then
LastC = "参数错误"
Exit Function
End If
LastC = "未包含该字符"
Dim i As Single
For i = 1 To Len(myRange)
If Mid(myRange, i, 1) = myC Or Mid(myRange, i, 1) = UCase(myC) Or Mid(myRange, i, 1) = LCase(myC) Then
LastC = i
End If
Next
End Function

输入公式:=MID(B2,FIND("粤",B2,1)+1,99),按enter键结束,以下是公式讲解:

一 FIND("粤",B2,1)返回3,FIND函数是指返回某字符在字符串中出现的起始位置,=FIND(要查找的字符串,被查找的字符串,开始位置)

二 MID(B2,3+1,99)返回1,MID函数是指从文本字符串的指定位置开始,根据字符数返回指定的字符串(所有字符的字符个数为1),=MID(字符串,开始位置,字符个数)

三 最后,点击C2单元格,下拉完成公式填充。

假设数据在A列,查找字母D最后一次出现的位置,公式:

="A"&LOOKUP(1,0/(A1:A999="D"),ROW(1:999))

也可把要查找的字符串输入在单元格中,再用公式引用该单元格更为方便,如在B1输入D,C1公式下拉:

=IF(B1="","","A"&LOOKUP(1,0/(A$1:A$999=B1),ROW($1:$999)))

在php中 strrpos函数 计算指定字符串在目标字符串中最后一次出现的位置
strrpos
(php 4, php 5)
strrpos — 计算指定字符串在目标字符串中最后一次出现的位置
说明
int strrpos ( string $haystack , string $needle [, int $offset = 0 ] )
返回字符串 haystack 中 needle 最后一次出现的数字位置。注意 php4 中,needle 只能为单个字符。
如果 needle 被指定为一个字符串,那么将仅使用第一个字符。
参数
haystack
在此字符串中进行查找。
needle
如果 needle不是一个字符串,它将被转换为整型并被视为字符的顺序值。
offset
或许会查找字符串中任意长度的子字符串。
负数值将导致查找在字符串结尾处开始的计数位置处结束。
返回值
返回 needle 存在的位置。如果没有找到,返回 false。
php 如何判断字符串中某一字符出现的次数
介绍一个php内置函数substr_count()来实现查询指定字符在字符串中出现的次数,也就是字符出现次数,更实用的字符串查找。
函数:substr_count()
功能:计算特定字符在字符串中出现次数
函数原型:int substr_count(string haystrack, string needle)
参数说明:
haystrack 必填 指定要查询的字符串
needle 必填 指定需要查询的字符
返回值:返回值为整型数 字符在指定字符串中出现的次数

import javautilScanner;
public class Test60023{
public static void main(String []args){
int index,i,n,j;
char ch;
String str;
Scanner in=new Scanner(Systemin);
ch=(innextLine())charAt(0);
n=innextInt();
innextLine();
for(i=1;i<=n;i++){
str=innextLine();

index=strlastIndexOf((int)ch);
if(index==-1)
Systemoutprintln("Not found");
else
Systemoutprintln(index);
}
}
}

可以用公式:
=FIND("@",SUBSTITUTE(A1,"那个字符","@",LEN(A1)-LEN(SUBSTITUTE(A1,"那个字符",""))))
公式中@,可以用一个在A1单元格中没用用过的字符代替它。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13380030.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-25
下一篇 2023-07-25

发表评论

登录后才能评论

评论列表(0条)

保存