我必须在字符串中找到*的出现,并且根据字符串中*的位置,必须执行某些操作。
if(* found in the beginning of the String) {
do this
}
if(* found in the middle of the String) {
do this
}
if(* found at the end of the String) {
do this
}
我使用matcher.find()
选项,但它没有给出所需的结果。
答案 0 :(得分:7)
使用String.indexOf
:
int pos = str.indexOf('*');
if (pos == 0) {
// Found at beginning.
} else if (pos == str.length() - 1) {
// Found at end.
} else if (pos > 0) {
// Found in middle.
}
另一种方法是使用startsWith
/ endsWith
/ contains
:
if (str.startsWith('*')) {
// Found at beginning.
} else if (str.endsWith('*')) {
// Found at end.
} else if (str.contains('*')) {
// Found in middle.
}
可能略微更高效,因为它避免了在以*
结尾的情况下检查整个字符串。但是,代码的可读性应该是在这两者之间进行选择的首要考虑因素,因为在许多情况下性能差异可以忽略不计。
当然,如果您使用后一种方法,则无法获得*
的实际位置。这取决于你真正想做的事情是否重要。