在QLineEdit中用点替换逗号
问题描述:
我目前正在Qt中进行一个项目,用户可以在配置中输入一个值来将其设置为全局。该值将被存储在一个.xml文件中,并从中读取。在QLineEdit中用点替换逗号
因为我在Visual Studio中使用C++,它只接受一个点:14.6
是好的,但14,6
不是。它不会抛出错误,但该值将被保存为零。由于语言的原因(德语是唯一需要逗号直到这一点的语言,并且大多数语言也使用该点作为分隔符),所以我希望将它保留在xml格式中。
我搜索类似于:Replace ,(comma) by .(dot) and .(dot) by ,(comma)。 这个答案反映到Javascript,但我需要它在c + +。
我想知道什么是最有效的解决方案。我曾经想过用正则表达式“翻译”它,但我确信有更多的方法可以做到这一点。
答
它易于使用std::replace
功能:
QString s = "aaa,bbb,ccc";
std::replace(s.begin(), s.end(), ',', '.');
qDebug()<< s;
或QString的替换功能:
QString s = "aaa,bbb,ccc";
s.replace(",", ".");
qDebug()<< s;
输出:aaa.bbb.ccc
你说的是字符串或数字? – user463035818
我正在使用QString –
也许相应地设置[locale](https://*.com/q/15220861/1460794)? – wally