Java-无法对基元类型int调用padLz(int)

Java-无法对基元类型int调用padLz(int),java,javascript,android,eclipse,android-activity,Java,Javascript,Android,Eclipse,Android Activity,我一直在尝试移植JavaScript代码的一部分,现在,我唯一还没有开始工作的部分有一个错误:无法在基本类型int上调用padLz(int)。下面是原始的JavaScript代码,同样是我的移植版本,其中突出显示了我尚未能够使用的部分 错误: 无法对基元类型int调用padLz(int) 有人知道修复方法吗? 原创 OsGridRef.prototype.toString = function(digits) { digits = (typeof digits ==

我一直在尝试移植JavaScript代码的一部分,现在,我唯一还没有开始工作的部分有一个错误:无法在基本类型int上调用padLz(int)。下面是原始的JavaScript代码,同样是我的移植版本,其中突出显示了我尚未能够使用的部分

错误:

无法对基元类型int调用padLz(int)

有人知道修复方法吗? 原创

 OsGridRef.prototype.toString = function(digits) {
              digits = (typeof digits == 'undefined') ? 10 : digits;
              e = this.easting, n = this.northing;
              if (e==NaN || n==NaN) return '??';

              // get the 100km-grid indices
              var e100k = Math.floor(e/100000), n100k = Math.floor(n/100000);

              if (e100k<0 || e100k>6 || n100k<0 || n100k>12) return '';

              // translate those into numeric equivalents of the grid letters
              var l1 = (19-n100k) - (19-n100k)%5 + Math.floor((e100k+10)/5);
              var l2 = (19-n100k)*5%25 + e100k%5;

              // compensate for skipped 'I' and build grid letter-pairs
              if (l1 > 7) l1++;
              if (l2 > 7) l2++;
              var letPair = String.fromCharCode(l1+'A'.charCodeAt(0), l2+'A'.charCodeAt(0));

              // strip 100km-grid indices from easting & northing, and reduce precision
              e = Math.floor((e%100000)/Math.pow(10,5-digits/2));
              n = Math.floor((n%100000)/Math.pow(10,5-digits/2));

              var gridRef = letPair + ' ' + e.padLz(digits/2) + ' ' + n.padLz(digits/2);

              return gridRef;
            }

 // pad a number with sufficient leading zeros to make it w chars wide

    Number.prototype.padLZ = function(w) {
      var n = this.toString();
      for (var i=0; i<w-n.length; i++) n = '0' + n;
      return n;
    }
OsGridRef.prototype.toString=函数(数字){
数字=(数字类型==“未定义”)?10:数字;
e=这条东距,n=这条北距;
如果(e==NaN | n==NaN)返回“?”;
//获取100公里网格索引
变量e100k=数学层(e/100000),n100k=数学层(n/100000);
如果(e100k6 | | n100k12)返回“”;
//将这些转换为网格字母的数字等价物
变量l1=(19-n100k)-(19-n100k)%5+数学层((e100k+10)/5);
风险值l2=(19-n100k)*5%25+e100k%5;
//补偿跳过的“I”并构建网格字母对
如果(l1>7)l1++;
如果(l2>7)l2++;
var letPair=String.fromCharCode(l1+'A'.charCodeAt(0),l2+'A'.charCodeAt(0));
//从东距和北距剥离100km网格索引,并降低精度
e=数学下限((e%100000)/数学功率(10,5位/2));
n=数学下限((n%100000)/数学功率(10,5位/2));
var gridRef=letPair+''+e.padLz(数字/2)+''+n.padLz(数字/2);
返回gridRef;
}
//用足够的前导零填充一个数字,使其宽度为w字符
Number.prototype.padLZ=函数(w){
var n=this.toString();
对于(VARI=0;I7)l1++;
如果(l2>7)l2++;
String-letPair=String.valueOf(l1+“A”.charAt(0))+String.valueOf(l2+“A”.charAt(0));
//从东距和北距剥离100km网格索引,并降低精度
e=(int)数学下限((e%100000)/Math.pow(10,5位/2));
n=(int)数学下限((n%100000)/Math.pow(10,5位/2));
String gridRef=letPair+''+e.padLz(数字/2)+''+n.padLz(数字/2);

  return gridRef;
}

 // pad a number with sufficient leading zeros to make it w chars wide

    public String padLZ(String w) {
              String n = this.toString();
              for (int i=0; i< n.length(); i++) n = '0' + n;
              return n;
    }
返回gridRef;
}
//用足够的前导零填充一个数字,使其宽度为w字符
公共字符串padLZ(字符串w){
字符串n=this.toString();
对于(inti=0;i
用padLz(e,digits/2)和padLz(n,digits/2)替换e.padLz(digits/2)和n.padLz(digits/2),然后实现带有签名的方法:

String padLz(int val, int digits) {
    ...
}

将原语int值作为参数传递到
padLz
函数中

作为

然后考虑使用

org.apache.commons.lang3.StringUtils.leftPad("" + val, digits, '0');
或在

示例

private static String padLz (int val, int digits) {
    return org.apache.commons.lang3.StringUtils.leftPad("" + val, digits, '0');
}

System.out.println(padLz (2, 5));    --> 00002

基本体没有方法。padLz是做什么的?我已经解释过了,上面放了代码,请你举个例子。我不明白上面我加了一个例子
org.apache.commons.lang3.StringUtils.leftPad("" + val, digits, '0');
private static String padLz (int val, int digits) {
    return org.apache.commons.lang3.StringUtils.leftPad("" + val, digits, '0');
}

System.out.println(padLz (2, 5));    --> 00002