Java 编码BAT问题——字符串

Java 编码BAT问题——字符串,java,Java,我遇到一个关于codingbat的问题,问题是: 给定一个字符串,返回由原始字符串最后2个字符的3个副本组成的新字符串。字符串长度至少为2。 我解决了这个问题,解决方案(如下)比我的好,但是,解决方案代码有一个问题,当字符串长度小于2时,就说长度只有1。str索引将为-1。代码还能用吗?为什么网站说解决方案是正确的 public String extraEnd(String str) { String end = str.substring(str.length()-2);

我遇到一个关于codingbat的问题,问题是:

给定一个字符串,返回由原始字符串最后2个字符的3个副本组成的新字符串。字符串长度至少为2。 我解决了这个问题,解决方案(如下)比我的好,但是,解决方案代码有一个问题,当字符串长度小于2时,就说长度只有1。str索引将为-1。代码还能用吗?为什么网站说解决方案是正确的

 public String extraEnd(String str) {
      String end = str.substring(str.length()-2);
      return end + end + end;

该网站将尽可能多地为您提供测试,以确保它基本上没有bug,但也有一些漏洞会出现异常。下面的代码是一个可以通过所有测试的代码,如果你想试一试的话

public String extraFront(String str) {
    if (str.length() <= 2)
    return str+str+str;
return str.substring(0,2)+str.substring(0,2)+str.substring(0,2);
}
publicstringextrafront(stringstr){

如果(str.length()该网站将尝试为您提供尽可能多的测试,以确保它基本上没有bug,但也有一些漏洞并出现异常。如果您想尝试,下面的代码可以通过所有测试工作

public String extraFront(String str) {
    if (str.length() <= 2)
    return str+str+str;
return str.substring(0,2)+str.substring(0,2)+str.substring(0,2);
}
publicstringextrafront(stringstr){

如果(str.length()“站点为什么说解决方案是正确的?”->“字符串长度将至少为2”…为什么忽略这个规则?当你说最后两个字符时,你有点假设
字符串将至少有2个
字符
。好的,这个代码在这种情况下是正确的,我想的是一种没有给出这样规则的情况。@Kingsfull123在这种情况下,问题要么没有框架,要么你必须检查玉米er案例。现实世界中的编码充满了这样的情况,即您知道输入的某些信息是真实的,因此您不必为这些信息为假的情况编码。例如,如果您从未使用
null
作为参数调用私有方法,则您的方法不需要处理null。或者,您使用的是Web服务框架at验证输入模型对象--您的处理代码是否不需要处理字段无效的情况。在这种情况下,要求说明字符串长度至少为2。解决方案只需要处理这些输入。“网站为什么说解决方案是正确的?”->“字符串长度至少为2”…为什么忽略这个规则?当你说最后两个字符时,你有点假设
字符串将至少有2个
字符
。好的,这个代码在这种情况下是正确的,我想的是一种没有给出这样规则的情况。@Kingsfull123在这种情况下,问题要么没有框架,要么你必须检查玉米er案例。现实世界中的编码充满了这样的情况,即您知道输入的某些信息是真实的,因此您不必为这些信息为假的情况编码。例如,如果您从未使用
null
作为参数调用私有方法,则您的方法不需要处理null。或者,您使用的是Web服务框架at验证输入模型对象—处理代码是否不需要处理字段无效的情况。在这种情况下,需求说明字符串长度至少为2。解决方案只需要处理这些输入。