正则匹配关键字符

1
2
String s = "/data/cache/style_1_common.css?y7a";
System.out.println(s.split("\\?")[0]);

split("?") split("\?") split("/?")都不行
split("\\?") split("[?]")

C++关于NULL和nullptr

NULL在C语言被定义为#define NULL ((void *)0),可以发生隐式类型转换( int *pi = NULL;)
nullptr是在C++中引入的,代表空指针,因为C++是强类型语言,void*是不能隐式转换成其他类型的指针的,所以NULL会被解释为0

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;

void func(int x) {
cout<<"void func(int x)"<<endl;
}

void func(char *y) {
cout<<"void func(int *y)"<<endl;
}

int main()
{
func(NULL);
return 0;
}

会有重载二义性错误,换成nullptr就没问题
不用NULL,用nullptr