数字字符串转换成浮点型数组(菜鸟级别)

给班上做一个计算不确定度的计算器时要用的一个部件,起了很大作用。
开源精神万岁!
package one;
import java.util.ArrayList;
import java.util.List;
//构造器
public class Portal {
	public Portal() {
		float[] numbers = getnumbers("3 ,,4.34 65 7.875 6.539 8");
		for (int i = 0; i < numbers.length; i++) {
			System.out.println("得到的数字:" + numbers[i]);
		}
	}
//程序入口
	public static void main(String args[]) {
		Portal self = new Portal();
	}

	/**
	 * 传进去一个数字组成的字符串,经解析返回一个浮点型数组 
	 * 这个字符串的每个数字直间用逗号或者空格隔开
	 * @param String s  
	 * @return float[]
	 */
	public float[] getnumbers(String s) {
		s = "," + s + ",";
		byte[] sb = s.getBytes();
		List<Integer> commalist = new ArrayList();
		// 得到逗号队列
		for (int i = 0; i < sb.length; i++) {
			if (sb[i] == 44 || sb[i] == 32) {
				commalist.add(i);
			}
		}

		float[] nums = new float[commalist.size() - 1];
		for (int i = 0; i < commalist.size() - 1; i++) {
			// 取得逗号的上一个与下一个在数组中的位置
			int n = commalist.get(i);
			int m = commalist.get(i + 1);
			if((m-n)==1){
				continue;
			}
			// 要拼接的字符串
			String p = new String();
			for (int j = 0; j < (m - n - 1); j++) {
				byte tem = sb[n + j + 1];
				// 将asic码转换成字符串,强制转型就行
				char c = (char) tem;
				p = p + c;
			}
			// 将拼接成的字符串转换成浮点型,然后装入数组
			float temf = Float.parseFloat(p);
			nums[i] = temf;
		}
		return nums;
	}
}

你可能感兴趣的:(C++,c,C#,J#)