如何在D中使用降低

时间:2019-04-03 08:41:20

标签: d phobos

我想在D中将字符串的首字母小写。

由于字符串在D中是不可插入的,因此似乎没有一种简单的方法。

我想到了这个

string mystr = "BookRef";
string outval = toLower( mystr[0..1] ) ~ mystr[1..$]; 
writeln( "my outval: ", outval );

有没有更简单的方法?

2 个答案:

答案 0 :(得分:5)

出于参考和完整性的考虑,您可以通过链接范围来构建它而无需任何分配。使用空字符串还具有其他优点:

auto downcase(string w)
{
    import std.range, std.uni;
    return w.take(1).asLowerCase.chain(w.drop(1));
}

Try online on run.dlang.io

答案 1 :(得分:1)

尽管D个string是不可变的,但您可以改用char[]

char[] mystr = "BookRef".dup; // .dup to create a copy
mystr[0] = toLower(mystr[0..1])[0];
writeln("my outval: ", mystr);