返回范围

时间:2019-03-13 16:42:08

标签: java string

我是Java的新手。我被分配了一个测试,但我对如何完成测试感到困惑。情况就是这样-

  

创建一个方法,该方法返回范围从A000到ZZZZ的带图案的字符串。该方法的参数是字符串本身,因此如果传递A000,则应返回A001,如果传递A001,则应返回A002,依此类推... A009 ... A999 ... AA00 ... AA99 ... AB00。 .. AB01 ... AB99 ... AC00 ...到AZZZ。

我已经能够增加数字,但是当它们达到99时无法将它们更改为字母。它应该返回AZA0,但我不知道该怎么写。

我考虑过使用数组,但是随后我必须将模式的每次迭代保存在数组中,这似乎是不可行的。然后我想我应该使用if ... else并编写数字应该递增为字母的实例,但这也不必要太长。我知道这可以通过适当的逻辑来完成,但是我没有做到。我在stackoverflow上搜寻了多个线程,但是找不到一个像这样的线程。

这就是我到目前为止-

public class StringSeries {

  public static String returnString (String inputString) {
    String newString = inputString.substring(0,2);
    String completeNewString = newString + 
        (Integer.parseInt(inputString.substring(1,inputString.length()))+1);
    System.out.println(completeNewString);
    return completeNewString;
  }

  public static void main (String[] args){
    Scanner sc = new Scanner();
    String inputString = sc.nextLine();
    returnString(inputString);
    sc.close();
  }
}

我需要有关如何执行此操作的建议。另外,请详细说明某种逻辑的工作原理。

谢谢!

P.S。我在论坛上对这种类型的问题已经找了很多东西,却找不到任何问题。我也意识到这个问题对于非新手可能是重复的。我要求您不要失礼,并指出类似线程(如果您知道它们在哪里)。谢谢。

1 个答案:

答案 0 :(得分:5)

这比看起来容易得多。您需要做的就是将字符串转换为以36为底的数字(Integer.valueOfInteger.parseUnsignedInt),向其添加一个数字,然后将其转换为大写的base-36字符串({{3} }并将其转换为大写)。