第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何遞增由 .'s 分隔的字符串值編號(即 1.2.3 == 1.2.4)

如何遞增由 .'s 分隔的字符串值編號(即 1.2.3 == 1.2.4)

C#
拉莫斯之舞 2022-12-31 13:13:44
我正在嘗試更新一個(gè)字符串參數(shù)并返回另一個(gè)具有更新版本號的字符串。示例輸入和輸出:nextVersion("1.2.3") === "1.2.4"?nextVersion("0.9.9") === "1.0.0."?nextVersion("1") === "2"?nextVersion("1.2.3.4.5.6.7.8") === "1.2.3.4.5.6.7.9"?nextVersion("9.9") === "10.0"?除第一個(gè)數(shù)字外,所有數(shù)字不得大于 10:如果有,則必須將它們設(shè)置為 0 并按順序遞增下一個(gè)數(shù)字。到目前為止,我可以: - 將字符串分開 - 增加一 - 放回原處我需要幫助來確定版本號是否以 11.1 開頭,因?yàn)楫?dāng)我增加它時(shí),它變成 1.1.2 而不是 11.2    static void Main(string[] args)    {        string user_input;        Console.WriteLine("Hello");        Console.WriteLine("Please input the version number to increment: ");        user_input = Console.ReadLine();        string new_version_number = next_Version(user_input);        Console.WriteLine("Your number is : {0}", new_version_number);        Console.ReadKey();    }        public static string next_Version(string user_input)    {        //removing . for parsing        string string_no_dots = user_input.Replace(".", "");        //storing length to see if incrementing from version x99 to 100        int string_length = string_no_dots.Length;        //convert to int to increment version        int number_no_dots;        int.TryParse(string_no_dots,out number_no_dots);        //increment by 1        int new_version_number = number_no_dots+1;        //convert back to string        string new_version_string = Convert.ToString(new_version_number);        //add the periods        string string_with_dots = String.Join<char>(".", new_version_string);        return string_with_dots;    }輸入:1.2.3.4輸出:1.2.3.5 是正確的但當(dāng)輸入:11.2.3輸出:1.1.2.4 而實(shí)際輸出應(yīng)該是 11.2.4感謝您的時(shí)間
查看完整描述

3 回答

?
繁星coding

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超4個(gè)贊

嘗試這樣的事情:


public static string next_Version(string user_input)

{

    try

    {

        int[] values = user_input.Split(".".ToCharArray()).Select(s => Convert.ToInt32(s)).ToArray();

        bool carryover;

        int index = values.Length - 1;

        do

        {

            carryover = false;

            values[index]++;

            if ((index > 0) && (values[index] == 10))

            {

                values[index] = 0;

                carryover = true;

                index--;

            }

        } while (carryover && (index >= 0));

        return String.Join(".", values);

    }

    catch (Exception)

    {

        return "[ Invalid Version Input! ]";

    }

}


查看完整回答
反對 回復(fù) 2022-12-31
?
Cats萌萌

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超9個(gè)贊

我建議這樣的方法:


string nextVersion(string user_input)

{

    var entries = user_input.Split('.')

                            .Select( s => int.Parse(s) )

                            .ToArray();


    void Inc(int index)

    {

        if ( index == 0 || ( entries[index] < 9 ) )

        {

            entries[index]++;

        }

        else

        {

            entries[index] = 0;

            Inc( index-1 );

        }

    }


    Inc( entries.Length-1 );


    return String.Join( ".", entries );

}

它將字符串拆分為一個(gè)數(shù)組,并將每個(gè)部分轉(zhuǎn)換為一個(gè) int。然后它對 int 進(jìn)行操作,然后從 int 值重新構(gòu)建版本字符串。


查看完整回答
反對 回復(fù) 2022-12-31
?
一只名叫tom的貓

TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超3個(gè)贊

這對我有用,我在經(jīng)過測試和工作的小提琴中制作了它

小提琴截圖

基本上它只是檢查數(shù)字的長度(以字符為單位)以及它是否大于數(shù)字+ 1的字符長度然后它將它轉(zhuǎn)換為0然后將1添加到以下數(shù)字,我應(yīng)該為每個(gè)長度添加1個(gè)零號碼有,但這應(yīng)該可以解決您的問題。

編輯:Nvm 使它適用于需要許多 0 的情況

即:1.99 == 2.00 而不是 1.99 == 2.0

小提琴鏈接:https ://dotnetfiddle.net/wvqHvu

using System;


public class Program

{

    public static void Main()

    {

        Console.WriteLine(next_Version("1.2.3.4"));

        Console.WriteLine(next_Version("11.2.3"));

    }

    public static string next_Version(string version)

    {

        string[] a = version.Split('.');

        int x = a.Length;

        int carrying = 1;

        while(x>0){


            int number = Convert.ToInt32(a[x-1]);


            if(Convert.ToString(number+carrying).Length > Convert.ToString(number).Length){

            string zeroes = "";

            foreach(char c in Convert.ToString(number)){

                zeroes += "0";

            }

            a[x-1] = zeroes;

            carrying = 1;

            }else{

                a[x-1] = Convert.ToString(number+carrying);

                carrying = 0;

                }

            x--;

        }

        String result = "";

        foreach(string s in a){

            result+=s+".";

        }


        return result.TrimEnd('.');

    }

}


查看完整回答
反對 回復(fù) 2022-12-31
  • 3 回答
  • 0 關(guān)注
  • 133 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號