Java:为什么使用split分隔字符串时,分隔"?"字符需要写成[?]呢?

public class Split {
public static void main(String[] args) {
String demo="yaofang?25";
System.out.println(demo.split("[?]")[0]);
}
}

为什么直接写成“?”不可以呢

    因为查看api,你就会发现String.split(String regex),也就是说里面的参数是正则表达式。

    如果是一些普通的字符,它就会当做普通字符给拆分字符串。可是 ?是特殊字符,想让按照 它来分,所以就用正则表达式表示某个特定字符的方式了。

    也就是说[?] 就表示 问号

1、Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

2、Java的主要工作:通过编程语言来制作互联网页面、制作动态效果以及网站等技术,现在网上关于这方面的教程有很多,但很多都是过时的,因为互联网是在不断的变化的,互联网上的牛人,要想成为Java大神,走进这条Java大神之群,首先Java教程的开头是二三一,Java的最中间是三一四,Java的最后面再加上零二八,把前面的综合起来,Java大神期待你的加入。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-11-26
查看 api ,你就会发现 String.split(String regex); 也就是说里面的参数是正则表达式。如果是一些普通的字符,它就会当做普通字符给拆分字符串。可是 ?是特殊字符,想让按照 它来分,所以就用正则表达式表示某个特定字符的方式了 [?] 就表示 问号本回答被提问者采纳
第2个回答  2014-03-04
这是正则表达式的知识了。

?在正则表达式里面是表示前面的部分出现了0次或1次,所以直接写?是不可以的。
如果想匹配?,用中括号可以,用split("\\?")也是可以的
相似回答