【问题标题】:Convert a string from Java to C++将字符串从 Java 转换为 C++
【发布时间】:2013-08-20 16:07:18
【问题描述】:

我在 Java 中有这个字符串:

String op="text1 "+z+" text2"+j+" text3"+i+" "+Arrays.toString(vol);

其中“z”、“j”和“i”是 int 变量; "toString()" 是属于某个类的函数。

class Nod
{
    private:
        char *op;
    public:
        char Nod::toString()
        {
        return *op;
        }
}

而“vol”是一个int变量的向量。

我想把它转换成 C++。

你能帮帮我吗?

编辑:

对不起,我让你感到困惑,但是“toString()”不是一个函数属于一个类。

"Arrays.toString()" - 是 Java 中的一个类。

【问题讨论】:

  • 我建议使用 C++ STL 和 Unicode,而不是 char * 指针。
  • 好的,我会用它;但我的问题是如何将字符串与 int 变量连接并将结果存储在字符串变量中?

标签: java c++ string class


【解决方案1】:

要将int 附加到字符串中,您可以使用std::stringstream

#include <sstream>
#include <string>

std::stringstream oss;

oss << "text1 " << z << " text2" << j << " text3" << i;

std::string str = oss.str();

str() 方法返回一个带有流内容副本的string

编辑:

如果你有std::vector,你可以这样做:

#include <vector>

std::vector<int> arr(3);
unsigned int size = arr.size();
for ( unsigned int i = 0; i < size; i++ )
    oss << arr[i];

或者有一个 C++11 的方式来做所有的事情:

#include <string>
#include <vector>

std::vector<int> arr(3);

std::string result = "text1 " + std::to_string(z);
result += " text2" + std::to_string(j);
result += " text3" + std::to_string(i) + " ";

for ( auto& el : arr )
    result += std::to_string(el);

你可以看看std::to_string

Here 是这段代码的一个活生生的例子。

请记住,目前并非所有编译器都支持 C++11。

【讨论】:

  • 你知道如何翻译“Arrays.toString(vol)”吗?
  • @RemusAvram 这取决于你想在 C++ 中使用的容器?你听说过std::vectorstd::array 吗?
  • vol 是 int 变量的向量,“Arrays.toString()”是 java 函数。我想要的是在最后添加 int 变量的向量。在java中,输出看起来像这样:“text1 15 text2 10 text3 11 [15, 18, 0]”;其中 "[15, 18, 0]" 是那个向量。
  • @RemusAvram 我用向量示例和 C++11 示例编辑了我的帖子。
  • 感谢您的回答!我再次问你是因为我相信它可能也是 C++ 中的一个函数,就像在 Java 中一样,但唯一的解决方案是“for”。好也是一个“for”,别误会我的意思。
【解决方案2】:

std::to_string 是在 C++11 中执行此操作的另一种方法(无需为 sstream 提供额外的 include):

std::string op = "text1 " + std::to_string(num);

【讨论】:

  • 感谢@Oleksiy 的回答!但太糟糕了,我不能在这个函数“to_string()”中使用 int 向量。
猜你喜欢
  • 2017-10-25
  • 1970-01-01
  • 2022-01-11
  • 1970-01-01
  • 2020-11-17
  • 2023-03-17
  • 2013-01-29
  • 2011-02-03
  • 1970-01-01
相关资源
最近更新 更多