1
我正在用Groovy lang丟掉我的頭髮,它已經連續4天毀了我,並且它正在計數。groovy,字符串拒絕是一個bigInt,是奇數而不是
我需要做的是執行一個外部進程,讀取stdout,獲取該值並將其轉換爲大整數。我有什麼
def str ='openssl x509 -in "'+ file + '" -serial -noout'
def command = "cmd /c " + str;
def proc = command.execute();
proc.waitFor();
def response = "${proc.in.text}"
def result = response.split('=')[1]
log.info result
// outputs: 7434F30AEE5F2001530C7F0C4844E9EE
log.info result.class.name
// outputs: java.lang.String
好吧,非常酷,讓我們去上:
def big = new BigInteger(result.decodeHex())
不 - 不,不能這樣做:
java.lang.NumberFormatException:奇數個字符在十六進制字符串
與此同時,在另一個腳本:
def numb = '7434F30AEE5F2001530C7F0C4844E9EE'
log.info numb.class.name
// outputs : java.lang.String
b = new BigInteger(numb.decodeHex())
log.info b
// outputs : 154465376439281796222583609645190146542
我很傷心,說明太簡單了 –
@Erki如果你在做Smutje建議後仍然有問題,那麼可能奇數是1,單字符字符串被自動轉換爲字符您使用的一種「Groovy默認方法」。你的旅程看起來很像我在4到6年前經歷過的,當時我使用了Codehaus Groovy,儘管我的頭髮可能會減少。 –
是的,事情是,我在SoapUI中開發,並沒有太多可用的調試選項。 –