我是 Java 的新手。我被分配了一个测试,但我不知道如何完成它。所以情况是这样的——
Create a method that returns a patterned string from range A000 to ZZZZ. Parameter for the method is string itself, so if we pass A000 it should return A001, if we pass A001 it should return A002 and so on... A009... A999... AA00... AA99... AB00... AB01... AB99... AC00... to AZZZ.
我已经能够增加数字,但是当它们达到 99 时无法将它们更改为字母。假设我输入了 AZ99;它应该返回 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();
}
}
我需要有关如何执行此操作的建议。另外,请详细说明特定逻辑的工作原理。
谢谢!
附言我在论坛上找了很多此类问题,但一直找不到。我也意识到这个问题对于非新手来说可能是重复的。我请求你不要粗鲁,如果你知道相似的线程在哪里,请指出它们。谢谢。
最佳答案
这比看起来容易得多。您需要做的就是将字符串转换为 36 进制数(Integer.valueOf
,Integer.parseUnsignedInt
),将其加一,然后将其转换为大写的 36 进制字符串(Integer.toString
并将其转换为大写例)。
关于从范围返回模式字符串的java方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55147065/