给定基数

时间:2015-08-30 07:22:50

标签: java string

我有这个问题:

  

在给定的targetBase中将v值增加1。例如   增量(“1044”,5)应返回“1100”。在上面的例子中,'4'+ 1 =   '5'不是基数5中的有效符号。在这种情况下,设置   当前字符为'0'并增加前面的字符。   重复,直到找到可以在其中增加的角色   目标基础系统。

到目前为止,据我所知,它应该更改最后一个值,如果它高于1到0和0到1。 到目前为止,我的代码中有:

 public static String increase(String v, int targetBase)
  for (int i = value.length(); i<0; i--) {
             if (v.charAt(i) == base - 1) {
                 v = value.replace(v.charAt(i), '0');
                 return v; 

但是我不知道如何处理这个问题以及我应该使用哪些方法。我可以获得有关如何执行此操作的任何提示吗?

1 个答案:

答案 0 :(得分:0)

可能这不是你教授希望你解决它的方式,但可以这样做:

public static String increase(String v, int targetBase) {
    return Integer.toString(Integer.parseInt(v, targetBase) + 1, targetBase);
}

将给定的String解析为给定基数中的int,递增结果并将其转换回给定基数中的String

如果您需要支持更大的数字,可以使用Long代替Integer

public static String increase(String v, int targetBase) {
    return Long.toString(Long.parseLong(v, targetBase) + 1, targetBase);
}

如果您需要支持任意精度数字,请使用BigInteger

public static String increase(String v, int targetBase) {
    return new BigInteger(v, targetBase).add(BigInteger.ONE).toString(targetBase);
}