Split字符串分拆
需要一个分词器的实现, 没考虑边缘case和转义,可以尝试自己加下:)
public static void main(String[] args) {
String input = 'sh -c 'ls / -lh'';
int begin=0;
boolean flag = false;
List result = new ArrayList();
for(int i=0;i=input.length()) {
c=' ';
} else {
c = input.charAt(i);
}
switch (c) {
case ' ':
if (!flag) {
if(begin != i) {
result.add(input.substring(begin, i));
}
begin=i+1;
}
break;
case '\'':
if(flag) {
flag = false;
result.add(input.substring(begin, i));
} else {
flag = true;
if(begin != i) {
result.add(input.substring(begin, i));
}
}
begin=i+1;
break;
default:
break;
}
}
System.out.println('result = ' + result);
}
赞0
踩0