String foo = "987abc<*(123";
我对RegEx-es和类似的搜索模式非常缺乏经验,而且我所尝试的每一种方法都不能正常工作(大多数情况下会导致StringIndexOutOfBoundsException
)。
找到字符串中最后一组数字开始的索引的可靠而简单的方法是什么?
注意:“1”在字符串的索引8处。
如果您不想要它,就没有必要为此使用RegEx。
像这样的方法应该完成以下工作:
public static int findLastNumbersIndex(String s) {
boolean numberFound = false;
boolean charBeforeNumberFound = false;
//start at the end of the String
int index = s.length() - 1;
//loop from the back to the front while there are more chars
//and no nonDigit is found before a digit
while (index >= 0 && !charBeforeNumberFound) {
//when the first number was found, set the boolean flag
if (!numberFound && Character.isDigit(s.charAt(index))) {
numberFound = true;
}
//when already a number was found and there is any nonDigit stop the execution
if (numberFound && !Character.isDigit(s.charAt(index))) {
charBeforeNumberFound = true;
break;
}
index--;
}
return index + 1;
}
public static void main(String[] args) {
System.out.println("\"987abc<*123\"" + " index of lastNumberSet: " + findLastNumbersIndex("987abc<*123"));
System.out.println("\"987abc<*123abc\"" + " index of lastNumberSet: " + findLastNumbersIndex("987abc<*123abc"));
System.out.println("\"987abc\"" + " index of lastNumberSet: " + findLastNumbersIndex("987abc"));
System.out.println("\"abc987\"" + " index of lastNumberSet: " + findLastNumbersIndex("abc987"));
System.out.println("\"987\"" + " index of lastNumberSet: " + findLastNumbersIndex("987"));
System.out.println("(Empty String)" + " index of lastNumberSet: " + findLastNumbersIndex(""));
System.out.println("\"abc\"" + " index of lastNumberSet: " + findLastNumbersIndex("abc"));
}
"987abc<*123" index of lastNumberSet: 8
"987abc<*123abc" index of lastNumberSet: 8
"987abc" index of lastNumberSet: 0
"abc987" index of lastNumberSet: 3
"987" index of lastNumberSet: 0
(Empty String) index of lastNumberSet: 0
"abc" index of lastNumberSet: 0
问题内容: 我想在给定的输入string中找到某个子字符串最后一次出现的位置(或索引)。 例如,假设输入字符串为,子字符串为,则应输出3。 我怎样才能做到这一点? 问题答案: 用途: 另外,请勿将其用作变量名,否则将使内置的阴影变暗。
我如何在O(N**2)个时间内完成它?
问题是,我试图这么做,但我检查字符串长度的方法不起作用;我能做些什么来修复它?
查找字符串中出现最多的字符和个数? 如 sdsdsddssssssdd -> 字符最多的是s,出现9次 思路说明 利用python中的collections模块的Counter,查此函数详细内容.对字符串进行统计。 然后将结果转化为字典类型。 特别注意,在字符串中可能会出现数量并列第一的字符,因此要通过循环找出最大数之后,再通过循环找出最大数对应的字母(键)。 解答1(python) import
本文向大家介绍在JavaScript中查找字符串的第一个非重复字符,包括了在JavaScript中查找字符串的第一个非重复字符的使用技巧和注意事项,需要的朋友参考一下 我们需要编写一个JavaScript函数,该函数将字符串作为第一个也是唯一的参数。 该函数应该找到并返回它在字符串中遇到的第一个字符的索引,该字符串在字符串中仅出现一次。 如果字符串不包含任何唯一字符,则函数应返回-1。 例如- 如
问题内容: 在 java 中查找字符串中的第一个非重复字符? 问题答案: 有多种方法可以找到它。 他们之中有一些是: 使用LinkedHashMap 使用 indexOf 和 lastIndexOf 方法。 面试问题之一是“你将如何在 String 中找到第一个非重复字符。” 例如: 如果输入字符串是“analogy”,那么程序应该返回’n’ 如果输入字符串是“easyest”,那么程序应该返回’