我想把字符串的第一个字母变成小写的D。
因为字符串在D中是不可修改的,所以似乎没有一种简单的方法。
我想出了这个:
string mystr = "BookRef";
string outval = toLower( mystr[0..1] ) ~ mystr[1..$];
writeln( "my outval: ", outval );有没有更简单的方法?
发布于 2019-04-03 17:05:12
虽然D strings是不可变的,但您可以改用char[]:
char[] mystr = "BookRef".dup; // .dup to create a copy
mystr[0] = toLower(mystr[0..1])[0];
writeln("my outval: ", mystr);发布于 2019-04-03 18:07:35
为了参考和完整,您可以通过链接范围来构建它,而不需要任何分配。它还具有使用空字符串的额外优势:
auto downcase(string w)
{
import std.range, std.uni;
return w.take(1).asLowerCase.chain(w.drop(1));
}https://stackoverflow.com/questions/55490727
复制相似问题