将字符串从Java转换为C++

Rom*_*lus 5 c++ java string class

我在Java中有这个字符串:

String op="text1 "+z+" text2"+j+" text3"+i+" "+Arrays.toString(vol);
Run Code Online (Sandbox Code Playgroud)

其中"z","j"和"i"是int变量; "toString()"是属于一个类的函数.

class Nod
{
    private:
        char *op;
    public:
        char Nod::toString()
        {
        return *op;
        }
}
Run Code Online (Sandbox Code Playgroud)

和"vol"是int变量的向量.

我想把它转换成C++.

你能帮我吗?

编辑:

抱歉,因为我混淆了你,但"toString()" 不是属于某个类的函数.

"Arrays.toString()" - 是一个来自Java的类.

Pie*_*aud 19

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

#include <sstream>
#include <string>

std::stringstream oss;

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

std::string str = oss.str();
Run Code Online (Sandbox Code Playgroud)

该方法str()返回a,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];
Run Code Online (Sandbox Code Playgroud)

或者有一种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);
Run Code Online (Sandbox Code Playgroud)

你可以看看std::to_string.

以下是此代码的实例.

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