我是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。我在论坛上对这种类型的问题已经找了很多东西,却找不到任何问题。我也意识到这个问题对于非新手可能是重复的。我要求您不要失礼,并指出类似线程(如果您知道它们在哪里)。谢谢。
答案 0 :(得分:5)
这比看起来容易得多。您需要做的就是将字符串转换为以36为底的数字(Integer.valueOf
,Integer.parseUnsignedInt
),向其添加一个数字,然后将其转换为大写的base-36字符串({{3} }并将其转换为大写)。