Ошибка конвертирования string to int - C#
Формулировка задачи:
Всем привет!
Я переписал на 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;
- }
- }
Листинг программы
- 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;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д