001 package railo.runtime.util; 002 003 import java.util.ArrayList; 004 import java.util.List; 005 006 /** 007 * class to operate some String List Operations and some list Operations 008 */ 009 public final class ListUtil { 010 011 /** 012 * creates a List from a String "List" 013 * @param str String to creates List from 014 * @param delimeter delimeter to split string 015 * @return List 016 */ 017 public static List stringToList(String str,char delimeter) { 018 ArrayList list=new ArrayList(); 019 int len=str.length(); 020 if(len==0) return list; 021 StringBuffer el=new StringBuffer(); 022 023 for(int i=0;i<len;i++) { 024 char c=str.charAt(i); 025 if(c==delimeter) { 026 list.add(el.toString()); 027 if(el.length()>0) el=new StringBuffer(); 028 } 029 else { 030 el.append(c); 031 } 032 } 033 list.add(el.toString()); 034 return list; 035 } 036 037 /** 038 * creates a List from a String "List", trims empty values at start and end 039 * @param str String to creates List from 040 * @param delimeter delimeter to split string 041 * @return List 042 */ 043 public static List stringToListTrim(String str,char delimeter) { 044 ArrayList list=new ArrayList(); 045 int len=str.length(); 046 if(len==0) return list; 047 StringBuffer el=new StringBuffer(); 048 boolean hasStart=false; 049 050 for(int i=0;i<len;i++) { 051 char c=str.charAt(i); 052 if(c==delimeter) { 053 if(!hasStart) { 054 if(el.length()>0) { 055 list.add(el.toString()); 056 hasStart=true; 057 } 058 } 059 else { 060 list.add(el.toString()); 061 } 062 if(el.length()>0) el=new StringBuffer(); 063 } 064 else { 065 el.append(c); 066 } 067 } 068 if(el.length()>0)list.add(el.toString()); 069 070 // remove empty items on the end 071 for(int i=list.size()-1;i>=0;i--){ 072 if(list.get(i).toString().length()==0) { 073 list.remove(i); 074 } 075 else break; 076 } 077 078 079 return list; 080 } 081 082 /** 083 * creates a List from a String "List", remove all empty values 084 * @param str String to creates List from 085 * @param delimeter delimeter to split string 086 * @return List 087 */ 088 public static List stringToListRemoveEmpty(String str,char delimeter) { 089 ArrayList list=new ArrayList(); 090 int len=str.length(); 091 if(len==0) return list; 092 StringBuffer el=new StringBuffer(); 093 094 for(int i=0;i<len;i++) { 095 char c=str.charAt(i); 096 if(c==delimeter) { 097 if(el.length()>0) { 098 list.add(el.toString()); 099 el=new StringBuffer(); 100 } 101 } 102 else { 103 el.append(c); 104 } 105 } 106 if(el.length()>0)list.add(el.toString()); 107 return list; 108 } 109 110 /** 111 * cast all Elememts of a list to a String array, make simple cast of the object by toString method 112 * @param list List to cast to a String Array 113 * @return String array from List 114 */ 115 public static String[] toStringArray(List list) { 116 int i=list.size(); 117 String[] arr=new String[i]; 118 for(i--;i>=0;i--) { 119 arr[i]=list.get(i).toString(); 120 } 121 return arr; 122 } 123 124 125 }