Java中的split在一些边界值需注意:(另外,除了下述,其他一些特殊符号如"."需要"//."表示。
split测试函数:
package BasicJava.Stringex;
public class SplitTest {
public String exchange(String st,String exc){
String as[];
as=st.split(" ");
System.out.println("//////----"+st+"----////////");
System.out.println(as);
for(String a:as){
System.out.println(a);
}
StringBuffer sb=new StringBuffer();
if(st.charAt(0)==' '){////在java中,用split第一个空格被划分,第一个字符串为“”;
sb.append(exc);
}
for(int i=0;i<as.length-1;i++){
sb.append(as[i]+exc);
}
if(st.charAt(st.length()-1)==' '){
sb.append(as[as.length-1]+exc);
}else{
sb.append(as[as.length-1]);
}
return sb.toString();
}
public static void main(String[] args) {
// TODO Auto-generated method stub
SplitTest ex=new SplitTest();
try{
System.out.println(ex.exchange("We are human!", "%"));
}
catch(Exception e){
System.out.println("wrong");
}
try{
System.out.println(ex.exchange(" We are human! ", "%"));
}
catch(Exception e){
System.out.println("wrong");
}
try{
System.out.println(ex.exchange(" ", "%"));
}
catch(Exception e){
System.out.println("wrong");
}
try{
System.out.println(ex.exchange(" ", "%"));
}
catch(Exception e){
System.out.println("wrong");
}
try{
System.out.println(ex.exchange(" ", "%"));
}
catch(Exception e){
System.out.println("wrong");
}
}
}
输出:
//////----We are human!----////////
[Ljava.lang.String;@15db9742
We
are
human!
We%are%human!
//////---- We are human! ----////////
[Ljava.lang.String;@6d06d69c
We
are
human!
%%We%are%human!%
//////---- ----////////
[Ljava.lang.String;@7852e922
wrong
//////---- ----////////
[Ljava.lang.String;@4e25154f
wrong
//////---- ----////////
[Ljava.lang.String;@70dea4e
wrong
以0为例的:
package BasicJava.Stringex;
public class SplitTest {
public String exchange(String st,String exc){
String as[];
as=st.split("0");
System.out.println("//////----"+st+"----////////");
System.out.println(as);
for(String a:as){
System.out.println(a);
}
StringBuffer sb=new StringBuffer();
if(st.charAt(0)=='0'){
sb.append(exc);
}
for(int i=0;i<as.length-1;i++){
sb.append(as[i]+exc);
}
if(st.charAt(st.length()-1)=='0'){
sb.append(as[as.length-1]+exc);
}else{
sb.append(as[as.length-1]);
}
return sb.toString();
}
public static void main(String[] args) {
// TODO Auto-generated method stub
SplitTest ex=new SplitTest();
try{
System.out.println(ex.exchange("We0are0human!", "%"));
}
catch(Exception e){
System.out.println("wrong");
}
try{
System.out.println(ex.exchange("0We0are0human!0", "%"));
}
catch(Exception e){
System.out.println("wrong");
}
try{
System.out.println(ex.exchange("0", "%"));
}
catch(Exception e){
System.out.println("wrong");
}
try{
System.out.println(ex.exchange("00", "%"));
}
catch(Exception e){
System.out.println("wrong");
}
try{
System.out.println(ex.exchange("000", "%"));
}
catch(Exception e){
System.out.println("wrong");
}
}
}
//////----We0are0human!----////////
[Ljava.lang.String;@15db9742
We
are
human!
We%are%human!
//////----0We0are0human!0----////////
[Ljava.lang.String;@6d06d69c
We
are
human!
%%We%are%human!%
//////----0----////////
[Ljava.lang.String;@7852e922
wrong
//////----00----////////
[Ljava.lang.String;@4e25154f
wrong
//////----000----////////
[Ljava.lang.String;@70dea4e
wrong