Ошибка конвертирования string to int - C#

Узнай цену своей работы

Формулировка задачи:

Всем привет!

Очень прошу помощи

. в решение проблемы. Переписываю методы на Java, которые декодируют строку, ключом которого является OS имя пользователя Есть 2 метода на Java, которые я переписываю на C#. Ключ: Jallvar Сообщение: 353c343e353d383e36353a3e36353a3e36373a3e353d383e36363c3e Зашифровано: jallvar Выдает ошибку: неверный входящий аргумент в методе decode, на строке: int x = Convert.ToInt32(var8) - Convert.ToInt32(var5[var7]); Жалоба на переменную var8 На JAVA
  public static String decode(String var0, String var1) {
      String var2 = h2s(var0);
      if(!var2.equals("") && var2.contains(":")) {
         String var3 = "";
 
         for(String var4 = ""; var3.length() < var2.split(":").length; var3 = var3 + var1) {
            ;
         }
 
         byte[] var5 = var3.getBytes();
         byte[] var6 = new byte[var2.split(":").length];
         int var7 = 0;
         String[] var11;
         int var10 = (var11 = var2.split(":")).length;
 
         for(int var9 = 0; var9 < var10; ++var9) {
            String var8 = var11[var9];
            var6[var7] = (byte)(Integer.valueOf(var8).intValue() - Integer.valueOf(var5[var7]).intValue());
            ++var7;
         }
 
         return new String(var6);
      } else {
         return "";
      }
   }
   public static String h2s(String var0) {
      if(var0 == null) {
         return "";
      } else if(!var0.matches("[0-9a-f]+")) {
         return var0;
      } else {
         byte[] var1 = (new BigInteger(var0, 16)).toByteArray();
         byte[] var2 = new byte[var1.length];
 
         for(int var3 = 0; var3 < var1.length; ++var3) {
            var2[var3] = (byte)(var1[var3] - 4);
         }
 
         String var6 = new String(var2);
 
         try {
            var6 = URLDecoder.decode(var6.toString(), "CP1251");
         } catch (UnsupportedEncodingException var5) {
            var6 = var6.toString();
         }
 
         return var6;
      }
   }
Я переписал на C# и у меня получилось следующее
    static class Decode
    {
        static Regex h2sReg = new Regex("[0-9a-f]+");
        public static string decode(string var0)
        {
            Console.WriteLine(Environment.UserName);
            string var1 = (Environment.UserName.Length > 0) ? Environment.UserName : "nullkey";
            string var2 = h2s(var0);
            if (var2.Length > 0 && var2.Contains("-"))
            {
                string var3 = "";
 
                for (string var4 = ""; var3.Length < var2.Split('-').Length; var3 = var3 + var1)
                {
                    ;
                }
 
                byte[] var5 = GetBytes(var3);
                byte[] var6 = new byte[var2.Split('-').Length];
                int var7 = 0;
                string[] var11;
                int var10 = (var11 = var2.Split('-')).Length;
 
                for (int var9 = 0; var9 < var10; var9++)
                {
                    string var8 = var11[var9].ToString();
                    int x = Convert.ToInt32(var8) - Convert.ToInt32(var5[var7]);
                    var6[var7] = (byte)(x);
                    var7++;
                }
 
                return BitConverter.ToString(var6);
            }
            else {
                return "";
            }
        }
        public static string h2s(string var0)
        {
            if (var0 == null)
            {
                return "";
            }
            else if (!h2sReg.IsMatch(var0))
            {
                return var0;
            }
            else {
 
                byte[] var1 = BigInteger.Parse(var0, System.Globalization.NumberStyles.HexNumber).ToByteArray();
                byte[] var2 = new byte[var1.Length];
 
                for (int var3 = 0; var3 < var1.Length; var3++)
                {
                    var2[var3] = (byte)(var1[var3] - 4);
                }
 
                string var6 = BitConverter.ToString(var2);
 
                try
                {
                    var6 = HttpUtility.UrlDecode(var6, Encoding.GetEncoding("windows-1251"));
                }
                catch
                {
                    var6 = var6.ToString();
                }
 
                return var6;
            }
        }
 
        static byte[] GetBytes(string str)
        {
            byte[] bytes = new byte[str.Length * sizeof(char)];
            System.Buffer.BlockCopy(str.ToCharArray(), 0, bytes, 0, bytes.Length);
            return bytes;
        }
    }

Решение задачи: «Ошибка конвертирования string to int»

textual
Листинг программы
using System.Globalization;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.786 из 5