java 字符串 数组 List 之间的相互转换。
开发Android的Path时候,需要一个便利的方法,把字符串格式的坐标转换为float数组。 测试代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
import java.util.Arrays; import java.util.List; /** * java 字符串 数组 List 之间的相互转换 * 注意: 没有字符串直接转换为List的方法 * @author tcshare.org * */ public class Test { public static void main(String[] args) { // 构建一个不规则的字符串数组 String str = " 1.2, 1.3 , 2.1 ,2.2 "; // 字符串转换为数组 Float[] array = Test.string2FloatArray(str, ","); // 数组转换为字符串 String aStr = Arrays.toString(array); System.out.println(aStr); // 把Array 转换为List List<Float> list = Arrays.asList(array); // 把List 转换为Array Float[] aList = new Float[list.size()]; list.toArray(aList); // 把List 转换为字符串 String lStr = list.toString(); System.out.println(lStr); } /** * 字符串格式的数组, 转换为Float格式数组 * @param str * @param token * @author tcshare.org * @return */ public static final Float[] string2FloatArray(String str, String token){ final String[] strArray = str.split(token); final Float[] floatArray = new Float[strArray.length]; int i = 0; for(String s : strArray){ floatArray[i++] = Float.valueOf(s); } return floatArray; } } |
按照JDK的建议, 采用 split 代替StringTokenizer 的方式来创建String数组。
1 2 3 4 5 6 7 8 9 10 |
// Legacy code: StringTokenizer st = new StringTokenizer("a:b:c", ":"); while (st.hasMoreTokens()) { System.err.println(st.nextToken()); } // New code: for (String token : "a:b:c".split(":")) { System.err.println(token); } |