我有一个String数组,包含双精度数。一个例子可以是包含[5,。,2]的String。我想成为双2,5。
我知道这很令人困惑,但我得到这样的数字的方式来自于:" y = 2.5x + 4.3" (称为ligning的变量)。
while(erTal(ligning.substring((ligning.indexOf("x")-i),(ligning.indexOf("x")-i+1))) == true){
xVærdi.add(ligning.substring((ligning.indexOf("x")-i),(ligning.indexOf("x")-i+1)));
System.out.println("There's a number to the left of x. Der er tilføjet " + i + " tal i alt");
i++;
}
检查String是否为数字的方法:
public static boolean erTal(String str) {
if(str.equals("+") || str.equals("-") || str.equals("*") || str.equals("/") || str.equals("=")){
return false;
} else {
return true;
}
}
答案 0 :(得分:1)
您可以使用空字符串作为分隔符(基本上撤消ligning)来连接元素,然后解析此字符串。
String[] ligning = {"2", ".", "5"};
String[] ligningReversed = new String[ligning.length];
for (int i = 0; i < ligning.length; i++) {
ligningReversed[i] = ligning[ligning.length - i - 1];
}
double result = Double.parseDouble(String.join("", ligningReversed));
即使元素不是单个数字,也可以使用。
答案 1 :(得分:0)
试试这个,我认为你在找什么:
// reverse the string
String s = new StringBuilder("[5,.,2]").reverse().toString();
// split the string with break expression
String[] str = s.split("\\b");
//join the string with required format
StringJoiner sj = new StringJoiner(".");
for (String t : str) {
// to get digits only
if(t.matches("\\d+")){
sj.add(t);
}
}
System.out.println(sj.toString());
希望有所帮助。