Qt C++ 如何在 1 个命令中截断属于 QStringList 成员的 QString 字母

Qt C++ How to chop a letter of QString that is member of a QStringList in 1 command

在我的代码中,我需要删除作为 QStringlist DataColumns 元素的 QString 的最后 space(s)。

这是我的:

  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);

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

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

或者,您可以使用 QString::truncate combined with QString::lastIndexOf.

删除最后一个 ] 之后的所有字符

函数声明为

void QString::chop(int n);

即它具有 return 类型 void

所以这个声明

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

无效。看起来像

dataColums[i] = void;

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