将字符串输入转换为int C#

时间:2018-10-23 22:39:12

标签: c# string int

因此,我必须制作一个在使用时在控制台应用程序中输入“ FIN”时停止的程序,否则该程序继续。问题是我之后无法将给定的数字转换为整数。 这是代码

[https://pastebin.com/USTia33i]

Cet算法,按数字进行验证的身份验证。倒塞拉 阿根廷国家统计局ABCDEF GH IJKL MNOP,《塞舌尔邮政法》,l'algorithme 验证类型和功能验证方法的正确性。

using System;
using static System.Console;
using static System.Convert;
using static System.Math;

namespace Partie_2_Cartes_de_crédit
{
    class Program
    {

        static void Main()
        {
            // Numéro de carte de crédit séparé blocs
            Write("Entrez les 6 premiers chiffres de votre carte (ABCDEF) ou (FIN) pour arreter : ");
            sting abcdef = ReadLine();

            for (; ; )
            {
                /***/
                if (abcdef == "FIN") break;
                /***/
                {

                    // Numéro de carte de crédit séparé blocs         
                    Write("Entrez les 2 chiffres suivants de votre carte (GH) : ");
                    int gh = ToInt32(ReadLine());

                    Write("Entrez les 4 chiffres suivants de votre carte (IJKL) : ");
                    int ijkl = ToInt32(ReadLine());

                    Write("Entrez les 4 chiffres suivants de votre carte (MNOP) : ");
                    int mnop = ToInt32(ReadLine());

                    // Vérification pour une carte American Express
                    if (abcdef / 10000 == 34 || abcdef / 10000 == 37)
                    {
                        int abcde = abcdef / 10;        // Numéro de carte de crédit séparé blocs
                        int fghijk = abcdef % 10 * 100000 + gh * 1000 + ijkl / 10;
                        int lmnop = ijkl % 10 * 10000 + mnop;
                        WriteLine("Le numéro " + abcde + " " + fghijk + " " + lmnop +
                            " indique une carte American Express, à valider en ligne.");
                    }

                    else
                    {
                        // Vérification pour une carte Visa
                        int abcd = abcdef / 100;        // Numéro de carte de crédit séparé blocs
                        int efgh = abcdef % 100 * 100 + gh;

                        if (abcd / 1000 == 4)
                        {
                            WriteLine("Le numéro " + abcd + " " + efgh + " " + ijkl + " " + mnop +
                                " indique une carte Visa à valider en ligne.");
                        }
                        // Vérification pour une carte MasterCard
                        else if (abcd / 100 >= 51 && abcd / 100 <= 55)
                        {
                            WriteLine("Le numéro " + abcd + " " + efgh + " " + ijkl + " " + mnop +
                                " indique une carte MasterCard à valider en ligne.");
                        }
                        // Vérification pour une carte Sears
                        else if (abcd / 10 == 628 && abcd % 10 != 0 && efgh / 1000 != 0 && efgh / 100 % 10 != 0)
                        {
                            // Formule de Luhn
                            int i = ijkl / 1000;        // Numéro de carte de crédit séparé en chiffre
                            int j = ijkl / 100 % 10;
                            int k = ijkl / 10 % 10;
                            int l = ijkl % 10;

                            int m = mnop / 1000;
                            int n = mnop / 100 % 10;
                            int o = mnop / 10 % 10;
                            int p = mnop % 10;

                            i *= 2;
                            k *= 2;
                            m *= 2;
                            p *= 2;

                            if (i >= 10)
                            {
                                i -= 9;
                            }
                            if (k >= 10)
                            {
                                k -= 9;
                            }
                            if (m >= 10)
                            {
                                m -= 9;
                            }
                            if (p >= 10)
                            {
                                p -= 9;
                            }

                            if (i + j + k + l + m + n + o + p % 10 == 0)
                            {
                                WriteLine("Le numéro " + abcd + " " + efgh + " " + ijkl + " " + mnop +
                                    " indique une carte Sears valide.");
                            }
                            else
                            {
                                WriteLine("Le numéro " + abcd + " " + efgh + " " + ijkl + " " + mnop +
                                    " indique une carte Sears invalide.");
                            }
                        }
                        // Vérification pour une carte Zellers
                        else if (abcd / 10 == 700)
                        {
                            // Formule de Luhn
                            int i = ijkl / 1000;        // Numéro de carte de crédit séparé en chiffre
                            int j = ijkl / 100 % 10;
                            int k = ijkl / 10 % 10;
                            int l = ijkl % 10;

                            int m = mnop / 1000;
                            int n = mnop / 100 % 10;
                            int o = mnop / 10 % 10;
                            int p = mnop % 10;

                            i *= 2;
                            k *= 2;
                            m *= 2;
                            p *= 2;

                            if (i >= 10)
                            {
                                i -= 9;
                            }
                            if (k >= 10)
                            {
                                k -= 9;
                            }
                            if (m >= 10)
                            {
                                m -= 9;
                            }
                            if (p >= 10)
                            {
                                p -= 9;
                            }

                            if (i + j + k + l + m + n + o + p % 10 == 0)
                            {
                                WriteLine("Le numéro " + abcd + " " + efgh + " " + ijkl + " " + mnop +
                                    " indique une carte Zellers valide.");
                            }
                            else
                            {
                                WriteLine("Le numéro " + abcd + " " + efgh + " " + ijkl + " " + mnop +
                                    " indique une carte Zellers invalide.");
                            }
                        }
                        else
                        {
                            WriteLine("Le numéro " + abcd + " " + efgh + " " + ijkl + " " + mnop +
                                " indique une carte inconne.");
                        }
                    }
                }
            }
        }
    }
} 

1 个答案:

答案 0 :(得分:0)

Int32.TryParse 

返回一个布尔值并填充变量,检查布尔值是否确实是一个整数。

https://docs.microsoft.com/en-us/dotnet/api/system.int32.tryparse?view=netframework-4.7.2