2

在我的代码中,我需要删除作为 QStringlist DataColumns 元素的 QString 的最后一个空格。

这就是我所拥有的:

  DataColumns[0] : "Time [ms]      "
  DataColumns[1] : "Position [m]"
  DataColumns[2] : "End Velocity [m/s]     "

这就是我想要的:

  DataColumns[0] : "Time [ms]"
  DataColumns[1] : "Position [m]"
  DataColumns[2] : "End Velocity [m/s]"

在 i(DataColumn 的元素)和 j(DataColumn 的元素字母)的循环中,我执行以下操作并且它有效:

 QStringList dataColums;
 QString A;
 ...
 A= dataColums[i];
 A.chop(1);
 dataColums[i] = A;

但是当我尝试将最后 3 行放入 1 个命令时它不起作用。

dataColums[i] = dataColums[i].chop(1);

任何人都可以向我解释为什么会这样吗?谢谢!

4

2 回答 2

2

如果您只需要删除空格,您可以使用QString::trimmed函数!

]或者,您可以使用QString::truncate结合QString::lastIndexOf删除最后一个字符之后的所有字符。

于 2020-01-10T09:48:45.867 回答
2

该函数声明为

void QString::chop(int n);

那就是它有返回类型void

所以这个说法

dataColums[i] = dataColums[i].chop(1);

是无效的。看起来像

dataColums[i] = void;

要从字符串的两侧删除空格,您可以使用成员函数trimmed

于 2020-01-10T09:49:14.237 回答