我得到了以下代码,我被问到哪个选项获得以下模式:
XXXX-XXXX-XXXX-2324
...
代码如下:
public class CCMark {
public static String maskCC(String creditCard){
String x = "XXXX-XXXX-XXXX-";
//line 1
}
public static void main(String[] args) {
System.out.println(maskCC("1234-5678-1234-2324"));
System.out.println(maskCC("4567-5678-1234-5643"));
System.out.println(maskCC("1234-5678-1234-4654"));
System.out.println(maskCC("4567-5678-1234-5435"));
}
}
Run Code Online (Sandbox Code Playgroud)
下面可以插入"第1行"的可能选项:
A)
return x + creditCard.substring(15, 19);
B)
StringBuilder sb = new StringBuilder(x);
sb.append(creditCard, 15, 19);
return sb.toString();
Run Code Online (Sandbox Code Playgroud)
我认为这里最好的选择,因为A和B为我们提供了相同的输出,是B,因为它使用的是StringBuilder,这意味着它的方法是可变的,因此它将使用比选项A更少的内存.
我错了吗?可能是这种特殊情况的选项A是最好的选择吗?
true如果传入的数字包含a,则此方法返回1.
public boolean hasOne(int n) {
return (n + "").contains("1");
}
Run Code Online (Sandbox Code Playgroud)
该+ ""部分的目的是 什么?如何使n一个string?(.contains只Strings据我理解).