SplitConcatWithAMP
功能描述:
1、將字符串數組連接為整個字符串,'&' 為連接符
特例:如果 array 為 null 或 empty,拋出異常。因為這時無法轉換!
public static String arrayToStringWithAMP( String[] array ) throws Exception
2、字符串切割為字符數組,'&'為切割符
特例:如果 str 為 null,拋出異常。這時也無法轉換!
public static String[] stringToArrayWithAMP( String str ) throws Exception
3、將 "&" 轉換為 "&" (因為 "&" 為特殊字符)。注意:"&" 的 "&" 不做處理
public static String encode( String str )
4、將 "&" 還原為 "&"
public static String decode( String str )
public class SplitConcatWithAMP {//Array to string concat with "&"//If array items contain "&" replace it to "&"public static String arrayToStringWithAMP( String[] array ) throws Exception{if( array == null || array.length == 0 ){throw new Exception("Array is null or empty, can not convert to string!");}StringBuilder sb = new StringBuilder();for( String s : array ){sb.append( encode(s) );sb.append( "&" );}return removeLastAMP( sb.toString() );}//Remove last "&" in stringprivate static String removeLastAMP( String str ){return str.substring( 0, str.length()-1 );}//String to array split with "&"//But if is "&" ,do not splitpublic static String[] stringToArrayWithAMP( String str ) throws Exception{if( str == null ){throw new Exception("String is null, Can not convert to array!");}String[] result = str.split( "&(?!amp;)" );for( int i=0 ; i<result.length ; i++ ){result[i] = decode( result[i] );}return result;}//Encode "&" in String to "&"//But if is "&" ,do not change.public static String encode( String str ){if( str == null){return null;}return str.replaceAll( "&(?!amp;)", "&" );}//Decode "&" in string to "&"public static String decode( String str ){if( str == null ){return null;}return str.replaceAll( "&", "&" );}}
演示:
public static void main(String[] args) throws Exception {String[] array = new String[]{"超人", "abc", "真的&可以區分", "懷&疑", "gg"};//RightSystem.out.println( "Right Demo!" );System.out.println( Arrays.toString(array) );String temp = arrayToStringWithAMP(array);System.out.println( temp );array = stringToArrayWithAMP(temp);System.out.println( Arrays.toString( array ) );//ErrorSystem.out.println("Error Demo!");errorDemo();}static void errorDemo(){String string = "超人&abc&真的&可以區分&懷&疑&gg";String[] arr = string.split( "&" );System.out.println( Arrays.toString(arr) );}輸出結果:
Right Demo!
[超人, abc, 真的&可以區分, 懷&疑, gg]
超人&abc&真的&可以區分&懷&疑&gg
[超人, abc, 真的&可以區分, 懷&疑, gg]
Error Demo!
[超人, abc, 真的, 可以區分, 懷, amp;疑, gg]
從上面的Right Demo結果可以看出:數組 -> 字符串 -> 數組
如果數組項中包含 "&",可以正確還原。
如果數組項中包含 "&",會還原為 "&"。(但其表達的意義是一致的)
總結
以上是生活随笔為你收集整理的SplitConcatWithAMP----Array转换为String,连接;String转换为Array,切割的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。