`
floger
  • 浏览: 213463 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

答复: String 中的split()

阅读更多

[quote="longzhu007"]一个同事这样使用split方法: String s = "ab|cd"; String[] array = s.split("|"); System.out.println(Arrays.toString(array)); 输出: [, a, b, |, c, d] 把"|"改为":" String s = "ab:cd"; String[] array = s.split(":"); System.out.println(Arrays.toString(array)); 输出: [ab, cd] 有人据此得出split方法有问题,其实这是RegEx的问题,使用者不了解RegEx,其实这是因为"|"是RegEx中的元符号,不能直接利用,需要转义符号"\" 修改如下: String s = "ab|cd"; String[] array = s.split("\\|");//java中是需要两个"\" System.out.println(Arrays.toString(array)); 输出: [ab, cd] 其实我们可以仔细阅读java的api文档,文档中明确说明这个参数字符串是RegEx型的,不是一个普通的字符串 所以呢,程序员需要对RegEx有较好的认识,否则在处理字符串的时候会碰到许多莫名其妙的错误,要么,就自己写那些效率低下的代码。[/quote]

分享到:
评论
3 楼 ruanwxh 2009-12-24  
谢谢博主。。
2 楼 floger 2009-12-23  
ruanwxh 写道
为什么java中是需要两个"\" ?

其实这个问题是这样的因为在“”中这个就是在第一个转义字符“\”后面是解释的第二个“\”,而在RegEx时中是要解释“\|”这样的形式的所以就是在java的字符串中就出现"\\|"的字样。这是我个人解释。
1 楼 ruanwxh 2009-12-22  
为什么java中是需要两个"\" ?

相关推荐

    std::string format格式化函数源代码及两种格式化方法

    在C++编程中,`std::string`是一个非常重要的数据类型,用于处理字符串。而`format`函数通常指的是用于格式化输出的工具,类似于C语言中的`printf`或C++的`std::stringstream`。本项目提供的`std::string format`...

    std::string、char*、const char*转托管byte数组或托管字符串String

    std::string、char*、const char*是C++中三个不同的字符串表示方式,它们都可以转换为托管的byte数组或字符串String,但是在C++/CLI中,它们的转换方法略有不同。 一、std::string转托管byte数组或字符串 std::...

    详解C++ string常用截取字符串方法

    若未找到,返回`std::string::npos`。例如: ```cpp std::string strPath = "E:\\数据\\2018\\2000坐标系\\a.shp"; int a = 0; if (strPath.find("2018") == std::string::npos) { a = 1; } else { a = 2; } ``` ...

    c++String类的重写

    std::string::operator=(other); return *this; } }; ``` **2. 索引运算符([])**:允许通过索引访问字符串中的字符,例如`myStr[i]`。重写它可以帮助添加边界检查或其他行为: ```cpp class MyString : public ...

    String.split()方法使用总结

    在Java编程语言中,`String.split()`方法是一个非常实用且强大的工具,用于将字符串分割成字符串数组,基于正则表达式或指定的分隔符。这个方法为处理文本数据提供了极大的灵活性,尤其在解析CSV文件、配置文件或者...

    StringAPI.java

    String[] split(String regex) boolean contains(CharSequence s):当且仅当此字符串包含指定的 char 值序列时,返回 true int indexOf(String str):返回指定子字符串在此字符串中第一次出现处的索引 int ...

    无法解析的外部符号”private: char * __cdecl cv::String::allocate(unsigned __int64)” (?allocate@String@cv@@AEAA

    1>save-image-D435.obj : error LNK2001: 无法解析的外部符号 “private: char * __cdecl cv::String::allocate(unsigned __int64)” (?allocate@String@cv@@AEAAPEAD_K@Z) 1>save-image-D435.obj : error LNK2001: ...

    比较两个string(不区分大小写)

    在编程领域,字符串(String)是数据处理中非常常见的一种数据类型,用于表示一系列字符。在很多情况下,我们可能需要比较两个字符串是否相等,但不考虑它们的大小写差异。这个任务在各种语言中都有相应的实现方法。...

    String split函数

    String split函数是 Java 中 String 类的一种常用函数,用于将一个字符串分割为子字符串,并将结果作为字符串数组返回。在实际开发中,String split函数经常被用于数据处理和字符串操作。本文将详细介绍 String ...

    C++ 16进制和字符串批量转换

    在C++中,我们可以使用`std::stringstream`和`std::hex`来实现字符串到16进制的转换,以及`std::stringstream`和`std::dec`来实现16进制到字符串的转换。 1. **字符串到16进制转换:** 在C++中,可以逐个字符处理...

    吕鑫:【C++语法与数据结构第21天】【第2堂课】std::string类的功能介绍

    1、对照std::string类的帮助网站,讲解和演示std::string类的各个成员函数的功能以及使用方法;

    c++中double与string相互转换算法

    总的来说,C++中`double`与`string`之间的转换涉及到`std::stringstream`、`std::to_string`、`std::stod`等工具,它们为开发人员提供了灵活且强大的方式来处理不同类型数据的转换。理解并熟练运用这些转换方法是C++...

    C ++:将MFC CString转换为std :: string

    在UNICODE中:CString str = L“ Test”; std :: wstring ws(str); std :: string s; s.assign(ws.begin(),ws.end());

    C++实现string存取二进制数据的方法

    在C++编程中,STL(Standard Template Library)的string类是用于处理文本字符串的强大工具。然而,在处理二进制数据时,需要注意string类的一些特性,因为它通常与文本字符串关联,而二进制数据可能包含特殊的字符...

    String类的intern、split方法

    String类的intern、split方法 String 类的 intern 方法是一个本地方法,定义如下:public native String intern();该方法返回一个字符串对象的内部化引用,由 String 类维护一个初始为空的字符串的对象池,当 ...

    字符串分割类 ,将字符串以特定符号隔开。

    = std::string::npos) { parts.push_back(str.substr(start, end - start)); start = end + delimiter.size(); } // 添加剩余部分 if (start ()) { parts.push_back(str.substr(start)); } return parts; ...

    CString string char 之间的相互转换

    char* string_to_char(std::string str) char* string_to_char_Ex(std::string& str) template void other_to_string(T value,std::string& s) int CString_unicode_to_char(CString str,char* buff) CString char_...

    C++17 使用 std::string_view避免字符串拷贝优化程序性能

    C++中std::string是日常Coding中经常使用的一个类,使用起来非常方便,但是也存在一些弊端。 如下代码,参数传递的过程发生了内存分配(Memory Allocation)和内存拷贝。 void fun(const std::string& s) { std::...

    C++封装调用C#的类库

    Console::WriteLine("转换回 C++ string: " + cppStdString); return 0; } ``` 在上面的C++/CLI代码中,`marshal_as`函数用于在`System::String^`和`std::string`之间进行转换。这使得C++可以方便地处理从C#类库...

    ini 文件操作

    std::string readString(std::string section, std::string key, std::string defaultValue); void writeInteger(std::string section, std::string key, int32_t value); void writeFloat(std::string section,...

Global site tag (gtag.js) - Google Analytics