亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將字符串(單詞)轉換為長

將字符串(單詞)轉換為長

C#
收到一只叮咚 2022-06-18 17:13:54
我想從“Testcase1”、“Testcase2”等字符串創建一個唯一的 ID。因此,我想將字符串分別轉換為整數。我已經嘗試過了,但我認為數字/ID 既不是唯一的,也不是這種方法正確的。我想將整個單詞轉換為數字。long numberId = 0;foreach (var character in testString.ToCharArray()){    numberId +=  Convert.ToInt16(character);}
查看完整描述

3 回答

?
千萬里不及你

TA貢獻1784條經驗 獲得超9個贊

不確定這是否是您所追求的:


static void Main(string[] args)

        {          


            var inputText = "Testcase1";

            Console.WriteLine($"{inputText} =>{CalculateTotal(GetHashString(string.Concat(inputText,DateTime.Now.Date.ToString(),  DateTime.Now.TimeOfDay.ToString())).ToArray<char>())}");

            inputText = "Testcase2";

            Console.WriteLine($"{inputText} =>{CalculateTotal(GetHashString(string.Concat(inputText,DateTime.Now.Date.ToString(),  DateTime.Now.TimeOfDay.ToString())).ToArray<char>())}");



        }

        static string GetHashString(string inputText)

        {

            HashAlgorithm hash = new SHA256Managed();

            var bytes = new byte[inputText.Length];

            bytes = Encoding.ASCII.GetBytes(inputText);

            return Encoding.ASCII.GetString( hash.ComputeHash(bytes));

        }


        static long CalculateTotal(char [] items)

        {


            var i = Array.ConvertAll<char, long>(items, Convert.ToInt64);

            return i.Sum();             

        }

輸出:


測試用例1 => 1880


測試用例2 => 1788


查看完整回答
反對 回復 2022-06-18
?
桃花長相依

TA貢獻1860條經驗 獲得超8個贊

這個實現如何使用基于測試字符串的字節數組之和:


    long uniqueId = "Testcase1".SelectMany(BitConverter.GetBytes).ToArray().Sum(c=> c);

    long uniqueId2 = "Testcase2".SelectMany(BitConverter.GetBytes).ToArray().Sum(c => c);

測試用例1 -> 877


測試用例2 -> 878


查看完整回答
反對 回復 2022-06-18
?
忽然笑

TA貢獻1806條經驗 獲得超5個贊

我沒有證據,但我認為以下方法會產生獨特的價值。


public static void Main()

{

    long numberId = 0;

    var testString = "Testcase3";

    long multiplier = (long)Math.Pow(10,testString.Length);

    foreach (var character in testString.ToCharArray())

    {

        numberId +=  Convert.ToInt16(character)*multiplier;

        multiplier /=10;

    }

    Console.WriteLine(numberId);

}


查看完整回答
反對 回復 2022-06-18
  • 3 回答
  • 0 關注
  • 115 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號