溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

DLang 整數(shù)字符串的互相轉(zhuǎn)換

發(fā)布時(shí)間:2020-03-01 17:40:16 來(lái)源:網(wǎng)絡(luò) 閱讀:287 作者:冰力 欄目:開(kāi)發(fā)技術(shù)

D 語(yǔ)言類型轉(zhuǎn)換很方便,只要引入標(biāo)準(zhǔn)庫(kù)的 std.conv 包就可以將各種類型進(jìn)行轉(zhuǎn)換。

先看整數(shù) int 類型轉(zhuǎn)成 string 字符串類型的例子:

import std.conv : to;
improt std.stdio : writeln;

void main()
{
    int i = 123;

    string s = i.to!string;
    writeln(s); // 這時(shí)候 s 就是字符串 "123"
}

再來(lái)看字符串 string 類型轉(zhuǎn)換成整數(shù) int 類型的例子:

import std.conv : to;
improt std.stdio : writeln;

void main()
{
    string s = "123";

    int i = s.to!int;
    writeln(i); // 這時(shí)候 i 就是整數(shù) 123

    i++;
    writeln(i); // 這時(shí)候 i 自然加一后成了 124
}

但是這時(shí)候有個(gè)問(wèn)題要注意,如果字符串 s 并不是一個(gè)數(shù)字類型,那么這個(gè)轉(zhuǎn)換就會(huì)爆出異常,這時(shí)候我們需要進(jìn)行判定,如果是非數(shù)字類型的字符串就將值設(shè)置為 0。

看看加了判斷后的代碼:

import std.conv : to;
improt std.stdio : writeln;
import std.string : isNumeric;

void main()
{
    string s1 = "123"; // 可以正常轉(zhuǎn)換為 int
    string s2 = "asdf1234"; // 不可以正常轉(zhuǎn)換為 int

    int a, b;

    if (isNumeric(s1))
    {
        a = s1.to!int;
    }
    else
    {
        a = 0;
    }

    if (isNumeric(s2))
    {
        b = s2.to!int;
    }
    else
    {
        b = 0;
    }

    writeln(a); // 這時(shí)候 a 就是整數(shù) 123
    writeln(b); // 這時(shí)候 b 輸出的結(jié)果就是 0
}

原文:DLang 整數(shù)字符串的互相轉(zhuǎn)換

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI