在QLineEdit中逐点替换逗号

时间:2017-08-31 12:04:47

标签: c++ qt

我目前正在使用Qt中的项目,用户可以在配置中输入值以将其设置为全局。此值将存储在.xml文件中,也可以从中读取。

由于我在Visual Studio中使用c ++,它只接受一个点:14.6没问题但14,6没有。它不会抛出错误,但该值将保存为零。出于语言原因,我希望将其保留在带有点的格式的xml中(德语是此时需要逗号的唯一语言,并且大多数语言也使用该点作为分隔符)

我搜索类似于Replace ,(comma) by .(dot) and .(dot) by ,(comma)的内容。 这个答案适用于Javascript,但我需要用c ++。

我想知道什么是最有效的解决方案。我已经考虑过用正则表达式“翻译”它,但我确信有更多的方法可以做到这一点。

1 个答案:

答案 0 :(得分:1)

使用std::replace功能很容易:

QString s = "aaa,bbb,ccc";
std::replace(s.begin(), s.end(), ',', '.');
qDebug()<< s;

OR QString替换功能:

QString s = "aaa,bbb,ccc";
s.replace(",", ".");
qDebug()<< s;

输出: aaa.bbb.ccc