簡體   English   中英

這些數字從何而來?

[英]Where did these numbers come from?

所以我這里有一個代碼,我要做的是從字符串(“1 2 3 4 5 6 66”)中獲取最大值和最小值,當我嘗試從該字符串創建一個 char 數組並從中獲取最大值時和最小我得到 54 作為最大值和 32 作為最小值。 如何?

    static void Main(string[] args)
    {
        HighAndLow("1 2 3 4 5 6 66");
    }
    public static string HighAndLow(string numbers)
    {
        char[] liczby = numbers.ToArray();

        int max = liczby.Max();
        int min = liczby.Min();
        
        Console.WriteLine($"{max} {min}");
        return $"{max} {min}";

    }

看這里

https://www.asciitable.com/

你會看到字符 'c' 是十進制的 54

並且“”(空格)的十進制值為 32

您得到的是字符代碼,而不是值。

改變

 char[] liczby = numbers.ToArray();

到類似的東西

char[] temp = numbers.Split(' ');
int[] liczby = temp.Select(c => int.parse(c)).ToArray();
    using System;
using System.Collections.Generic;
using System.Linq;

namespace stack
{
  internal class Program
 {
     static void Main(string[] args)
     {
          HighAndLow("1 2 3 4 5 6 66");

      }
        static string HighAndLow(string numbers)
     {
         if (numbers.Length > 0)
         {
                var listnumbers = numbers.Split(' ');
                var max = int.MinValue;
                var min = int.MaxValue;
                foreach (var number in listnumbers)
                {
                 var ent = int.Parse(number);
                    max = ent <= max ? max : ent;
                 min = ent >= min ? min : ent;
             }
                Console.WriteLine("max :"+max+" min: "+min);
                return $"{max} {min}";
            }
          return "empty string";
        }
 }
}

或者只是替換:

char[] liczby = numbers.ToArray();

和:

var  temp = numbers.Split(' ');
  int[] liczby = temp.Select(c => int.Parse(c)).ToArray();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM