cocos2d-x 之 split分割字符串

如果有这样的数据,如: “100#200#300#400”,在之前使用orge引擎的情况下,可借助split来实现,如:

Ogre::String str = "100#200#300#400";
StringVector strVec = StringUtil::split(str,"#");

其实现代码如下,在OgreString.cpp中:

// 头文件
static vector<String>::type split( const String& str, const String& delims = "\t\n ", unsigned int maxSplits = 0);

// 实现文件
StringVector StringUtil::split( const String& str, const String& delims, unsigned int maxSplits)
    {
        StringVector ret;
        // Pre-allocate some space for performance
        ret.reserve(maxSplits ? maxSplits+1 : 10);    // 10 is guessed capacity for most case

        unsigned int numSplits = 0;

        // Use STL methods
        size_t start, pos;
        start = 0;
        do
        {
            pos = str.find_first_of(delims, start);
            if (pos == start)
            {
                // Do nothing
                start = pos + 1;
            }
            else if (pos == String::npos || (maxSplits && numSplits == maxSplits))
            {
                // Copy the rest of the string
                ret.push_back( str.substr(start) );
                break;
            }
            else
            {
                // Copy up to delimiter
                ret.push_back( str.substr(start, pos - start) );
                start = pos + 1;
            }
            // parse up to next real data
            start = str.find_first_not_of(delims, start);
            ++numSplits;

        } while (pos != String::npos);
        return ret;
    }

那么cocos2d-x 中有类似的函数存在吗?很幸运还是找到了,大家可参考:...\cocoa\CCNS.cpp,其实现代码如下:

#include "CCNS.h"          // 

typedef std::vector<std::string> strArray;
// string toolkit
static inline void split(std::string src, const char* token, strArray& vect)
{
    int nend=0;
    int nbegin=0;
    while(nend != -1)
    {
        nend = src.find(token, nbegin);
        if(nend == -1)
            vect.push_back(src.substr(nbegin, src.length()-nbegin));
        else
            vect.push_back(src.substr(nbegin, nend-nbegin));
        nbegin = nend + strlen(token);
    }
}        
时间: 2024-10-23 12:59:37

cocos2d-x 之 split分割字符串的相关文章

java关于split分割字符串,空的字符串不能得到的问题

java关于split分割字符串,空的字符串不能得到的问题 class T { public static void main(String args[]) { String num[] = new String[11]; String sLine = "101494|360103660318444|2008/06/17|周润英|1292.0|3085.76|2778.28|912.91|106.0|||"; num = sLine.split("\\|"); in

C#的String.Split 分割字符串用法详解的代码

代码期间,把代码过程经常用的内容做个珍藏,下边代码是关于C#的String.Split 分割字符串用法详解的代码,应该对码农们有些用途. 1) public string[] Split(params char[] separator)2) public string[] Split(char[] separator, int count)3) public string[] Split(char[] separator, StringSplitOptions options)4) public

java类中与js中split分割字符串转数组区别

java类中,以","分割,将字符串转化为数组 String str = "a,b,c,"; String[] arr = str.split(","); System.out.println(arr.length); 输出长度为3,arr[0]="a"; arr[1]="b"; arr[2]="c"; js中,以","分割,将字符串转化为数组 var str = &

C#的split()分割字符串

简单的说: 在C#中 str.Split("===="); //这样是错误的,只能 str.Split('=');//参数只能是char类型的,不能是字符串的 如果非得要以字符串分割,那么请用: string content = "I love you=====do you know===shit"; string[] sArray = null; sArray = System.Text.RegularExpressions.Regex.Split(content

java split 分割字符串用法

在java.lang包中有String.split()方法,返回是一个数组.   1.“.”和“|”都是转义字符,必须得加"\\"; 如果用“.”作为分隔的话,必须是如下写法:String.split("\\."),这样才能正确的分隔开,不能用String.split(".");如果用“|”作为分隔的话,必须是如下写法:String.split("\\|"),这样才能正确的分隔开,不能用String.split("|

C++ split分割字符串函数

将字符串绑定到输入流istringstream,然后使用getline的第三个参数,自定义使用什么符号进行分割就可以了. #include <iostream> #include <sstream> #include <string> #include <vector> using namespace std; void split(const string& s,vector<int>& sv,const char flag =

js split 的用法和定义 js split分割字符串成数组的实例代码

<script language="javascript"> str="2,2,3,5,6,6"; //这是一字符串 var strs= new Array(); //定义一数组 strs=str.split(","); //字符分割 for (i=0;i<strs.length ;i++ ) { document.write(strs[i]+"<br/>"); //分割后的字符输出 } <

js split分割字符串成数组

str = "2,2,3,5,6"; //这是一字符串 var strs = new Array(); //定义一数组 strs = str.split(","); //字符分割 for (i=0; i<strs.length; i++ ){ document.write(strs[i]+"<br/>"); //分割后的字符输出 } 输出结果: 2 2 3 5 6 原文地址:https://www.cnblogs.com/QW-

jstl split 分割字符串?

1. 在已经获得数据的前提下,对数据进行分割,分割后的结果是一个数组,可以通过数组获得我们需要的数据 2. value 是获得值 需要${} 的方式获取, var 是设置变量. var = "" 条件 我在js 中获得的一行字符串, 是不同的关键字. 例如 556, 557,在数据库中代表不同的数据. 我通过 & 的方式,将它们连接在一起. 将数据发送到了jsp. 现在我要分割这些数据,在jsp 页面中,通过request 请求,获得数据. 我需要在jsp 中,将数据进行spl