我的任務是將此Java代碼遷移到C#版本,但我在ValueOf
方法中遇到問題,因爲我似乎找不到與C#(因爲在Java上使用Radix
參數,在這種情況下爲16)。Java Integer.ValueOf C#中的方法等價與基數參數
public String decrypt_string(String s)
{
String s1 = "";
int i = s.length()/2;
int[] ai = new int[i];
for (int j = 0; j < i; j++)
{
// This is the "problematic" line \/
ai[j] = Integer.valueOf(s.substring(j * 2, j * 2 + 2), 16).intValue();
}
int[] ai1 = decrypt_block(ai, i);
for (int k = 0; k < i; k++)
{
if (ai1[k] != 0)
s1 = s1 + (char)ai1[k];
}
return s1;
}
這裏是我的嘗試,但它失敗:
public String decrypt_string(String s)
{
String s1 = "";
int i = s.Length/2;
int[] ai = new int[i];
for (int j = 0; j < i; j++)
{
int startIndex = j * 2;
string tmp = s.Substring(startIndex, 2);
ai[j] = Int32.Parse (tmp);
}
int[] ai1 = decrypt_block(ai, i);
for (int k = 0; k < i; k++)
{
if (ai1[k] != 0)
s1 = s1 + (char)ai1[k];
}
return s1;
}
在此先感謝
Down投票的任何原因? – 2012-04-20 14:44:23
我猜想downvote是因爲你沒有解釋你正在做什麼,只是假設你會知道java代碼中的16是什麼意思。 – SimpleVar 2012-04-20 14:47:59