在cocos2d-x中,我们常常都需要用到字符串,但每种编程语言都存在大量字符串,cocos2d-x也不例外。在编程中,由于字符串比较多,我们常常不知道用哪一个字符串好些,对字符串间的转换也很是迷茫,特别是对于新手cocos2d-x开发者来说,这种情况太多了。为让大家能够能好的使用cocos2d-x的字符串,小编就再当一次红领巾为大家整理整理吧,希望对大家有帮助。
在Cocos2d-x中,主要有constchar*、std::string和cocos2d::__String等几种字符串。其中const char*是C风格的字符串,std::string是C++风格的字符串,它封装了const char*。只有cocos2d::__String才是Cocos2d-x引擎提供的字符串类,这些字符串之间都可以互相转换,且它们都应用在不同的场景下。
1、const char*和std::string
std::string是一个类,特点是面向对象,const char*不是类。
初始化std::string对象:
std::string name = “tony”;
std::string name = std::string(“tony”);
把std::string转化为const char*类型:
const char* cstring =
name.c_str();
2、cocos2d::__String
cocos2d::__String是Cocos2d-x通过的一个字符串类,它的设计模拟了Objective-C的NSString类,这由于Cocos2d-x源自于Cocos2d-iphone,cocos2d::__String也是基于Unicode双字节编码。
创建它的主要的静态create函数如下:
static__String * create (const std::string &str)
static__String * createWithFormat (const char *format,…)
使用create函数的实例代码如下:
__String* name= __String::create(“Hi,Tony”);
int num=123;
__String* ns = __String::createWithFormat("%d",num);
3、cocos2d::__String数据类型之间的转换函数
cocos2d::__String转换为const char*类型:
__String* name= __String::create(“Hi,Tony”);
const char *cstring=name->getCString();
const char*转换为cocos2d::__String类型:
const char* cstring = “Hi,Tony”;
__String*ns=__String::createWithFormat("%s",cstring);
std::string转换为cocos2d::__String类型:
std::string string = “Hi,Tony”;
__String*ns=__String::createWithFormat("%s",string.c_str());
cocos2d::__String转换为int类型:
int num = 123;
__String* ns =__String::createWithFormat("%d",num);
int num2 = ns->intValue();
cocos2d-x程序猿你们明了么,没清楚的小伙伴就赶紧收藏慢慢研究吧。