Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Integer.ValueOf C#中带基数参数的方法等价性_C#_Java_Migration - Fatal编程技术网

Java Integer.ValueOf C#中带基数参数的方法等价性

Java Integer.ValueOf C#中带基数参数的方法等价性,c#,java,migration,C#,Java,Migration,我的任务是将这个Java代码迁移到C版本,但是我在ValueOf方法上遇到了问题,因为我似乎找不到C的等效版本(因为Java上使用了Radix参数,在本例中为16) 公共字符串解密\u字符串(字符串s) { 字符串s1=“”; int i=s.length()/2; int[]ai=新的int[i]; 对于(int j=0;j

我的任务是将这个Java代码迁移到C版本,但是我在
ValueOf
方法上遇到了问题,因为我似乎找不到C的等效版本(因为Java上使用了
Radix
参数,在本例中为16)

公共字符串解密\u字符串(字符串s)
{
字符串s1=“”;
int i=s.length()/2;
int[]ai=新的int[i];
对于(int j=0;j
}

这是我的尝试,但失败了:

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;
    }
公共字符串解密\u字符串(字符串s)
{
字符串s1=“”;
int i=s.长度/2;
int[]ai=新的int[i];
对于(int j=0;j

提前感谢

如果您试图解析十六进制(base-16)数字,请使用以下命令:

int.Parse (tmp, NumberStyles.HexNumber);

您需要将字符串转换为整数,因为该字符串位于特定的基中

int i = Convert.ToInt32(str, 16);
int j = Convert.ToInt32("A", 16); // 10
因此:

for(int j=0;j
在这里显示的java代码中,基数是Integer.valueOf()而不是s.substring(),因此这将变成:

ai[j] = Int32.Parse(s.Substring(j * 2, j * 2 + 2), 16);

否决票的原因是什么?我猜否决票是因为你没有解释你想做什么,只是假设你知道16在java代码中的意思。
    for (int j = 0; j < i; j++)
    {
        int startIndex = j * 2;
        ai[j] = Convert.ToInt32(s.Substring(startIndex, 2));
    }
ai[j] = Int32.Parse(s.Substring(j * 2, j * 2 + 2), 16);