Ошибка конвертирования string to int - C#
Формулировка задачи:
Всем привет! Я переписал на C# и у меня получилось следующее
Очень прошу помощи
. в решение проблемы. Переписываю методы на Java, которые декодируют строку, ключом которого является OS имя пользователя Есть 2 метода на Java, которые я переписываю на C#. Ключ: Jallvar Сообщение: 353c343e353d383e36353a3e36353a3e36373a3e353d383e36363c3e Зашифровано: jallvar Выдает ошибку: неверный входящий аргумент в методе decode, на строке: int x = Convert.ToInt32(var8) - Convert.ToInt32(var5[var7]); Жалоба на переменную var8 На JAVApublic 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; } }
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;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д