编辑感谢帮助人们现在就开始工作。
所以我有一个问题要问用户的名字和姓氏,我没有遇到任何问题,但后来我认为扩展程序是好的,这样如果有人输入像McCabe这样的姓氏就会打印T麦克而不是TM。我只是不确定如何比较第二个字符串字符串的前两个字母,看它们是"mc"
。
public class InitialsAlt {
public static void main(String [] args){
Scanner keyboardIn = new Scanner (System.in);
String firstname = new String();
System.out.print (" Enter your first name ");
firstname = keyboardIn.nextLine();
String secondname = new String();
System.out.print (" Enter your second name ");
secondname = keyboardIn.nextLine();
if(secondname.charAt(0, 1)== "mc" ) {
System.out.print("Your initals are " + firstname.charAt(0)+ secondname.charAt(0,1,2));
}
else {
System.out.print("Your initals are " + firstname.charAt(0)+ secondname.charAt(0));
}
}
}
答案 0 :(得分:6)
if (secondName.toLowerCase().startsWith("mc")) {
答案 1 :(得分:2)
最简单的方法是使用1: login=luser-name&password=<redacted>&otherstuff=dontcare
2: login=luser-name&password=<redacted>
3: login=luser-name&password=secretpw
4: login=luser-name&password=<redacted>
:
String.startsWith
如果您想避免缩小整个字符串或创建新对象,只需检查前两个字符:
yourString.toLowerCase().startsWith("mc")
但是,我会使用前一个解决方案,因为它更具可读性,并且从小写整个字符串中获得的性能几乎肯定可以忽略不计,除非你在相当大的字符串上执行此操作。
答案 2 :(得分:1)
使用substring获取前两个字母,然后转换为小写,然后检查它是否等于:
String someString = "McElroy";
if (someString.subString(0,2).toLowerCase().equals("mc")) {
//do something
}
答案 3 :(得分:1)
使用yourString.toLowerCase().indexOf("mc")==0
。这将只涉及创建一个新的String一次(因为indexOf()
没有创建新的String,使用indexOf()
会比在这里使用subString()
更好。
答案 4 :(得分:1)
如果不区分大小写,您可以使用Apache Commons Lang库:
if(StringUtils.startsWithIgnoreCase(secondname, "mc") {
// Do nice stuff
}
否则,您可以使用:
if(StringUtils.startsWith(secondname.toLowerCase(), "mc") {
// Do nice stuff
}