我想使用startsWith()方法,String但忽略了这种情况.
假设我有String"Session"而我startsWith在"sEsSi"上使用它应该返回true.
任何人都可以解释以下代码String.java,特别是为什么有三个if语句(我已经标记//1,//2并且//3)?
private static class CaseInsensitiveComparator
implements Comparator<String>, java.io.Serializable {
// use serialVersionUID from JDK 1.2.2 for interoperability
private static final long serialVersionUID = 8575799808933029326L;
public int compare(String s1, String s2) {
int n1=s1.length(), n2=s2.length();
for (int i1=0, i2=0; i1<n1 && i2<n2; i1++, i2++) {
char c1 = s1.charAt(i1);
char c2 = s2.charAt(i2);
if (c1 != c2) {/////////////////////////1
c1 = Character.toUpperCase(c1);
c2 = Character.toUpperCase(c2);
if (c1 != c2) {/////////////////////////2
c1 = …Run Code Online (Sandbox Code Playgroud) 得到一个问题:
我如何组合message.equalsIgnoreCase和message.startswith()?
即:
if (message.startsWith("!spoiler")) {
String name = sender;
if (!name.equalsIgnoreCase(ownerchannel)){
try {
String spoiler = message.split("!spoiler ")[1];
sendMessage(channel, "/timeout "+name+" 1");
if(englishmode == true){
sendMessage(channel, "Spoiler from "+name+" deleted. Click at 'message deleted' above to read it!");
}else{
sendMessage(channel, "Spoiler von "+name+" wurde zensiert. Wer diesen lesen möchte klickt einfach oben auf 'message deleted'.");
}
} catch (Exception e) {
}
}
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,!剧透xyz会触发它但是!Spoiler xyz不会.我怎样才能将它与开始+ + ignorecase结合起来?