给班上做一个计算不确定度的计算器时要用的一个部件,起了很大作用。
开源精神万岁!
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;
}
}