Java 将字符串数组设置为整数。[“2”、“2”到22,而不是[2,2]
我有一个字符串数组,包含双精度。例如,可以是包含[5,,,2]的字符串。我想成为双2,5 我知道这很让人困惑,但我得到这些数字的方式是通过输入:“y=2.5x+4.3”(变量称为ligning) 检查字符串是否为数字的方法:Java 将字符串数组设置为整数。[“2”、“2”到22,而不是[2,2],java,arrays,string,Java,Arrays,String,我有一个字符串数组,包含双精度。例如,可以是包含[5,,,2]的字符串。我想成为双2,5 我知道这很让人困惑,但我得到这些数字的方式是通过输入:“y=2.5x+4.3”(变量称为ligning) 检查字符串是否为数字的方法: public static boolean erTal(String str) { if(str.equals("+") || str.equals("-") || str.equals("*") || str.equals("/") || str.equ
public static boolean erTal(String str) {
if(str.equals("+") || str.equals("-") || str.equals("*") || str.equals("/") || str.equals("=")){
return false;
} else {
return true;
}
}
您可以使用空字符串作为delimeter连接元素(基本上是取消对齐),然后解析该字符串
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));
String[]aligning={“2”,“5”};
String[]ligningReversed=新字符串[ligning.length];
对于(int i=0;i
即使元素不是个位数,这也会起作用。试试这个,我想你要找的是:
// 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());
希望有帮助 你这是什么意思:[5,,,2]那不是双倍的……那是一个数字。我希望它是2.5(一个双精度),但我如何反转它?谢谢,但它不会反转数字。假设输入(对齐)是2.3倍,这样我会得到3.2倍。我如何反转它才能得到2.3?@Bassusour你需要反转阵列,有很多方法可以做到这一点。对于一个简单的例子,请查看更新后的答案。感谢您提供的代码,但我在
ligningReversed[I]=ligning[ligning.length-I-1]处收到一个错误代码>告诉“需要数组,但找到字符串”。而不是硬编码的对齐={“2”,“5”}代码>它实际上是一个名为xVærdi的变量,包含这些元素;不对齐。我的错。此外,xVærdi是一个ArrayList,而不是一个数组,因此我不能在您的示例中使用它。当字符串来自ArrayList而不是array时,您能告诉我如何操作吗?@Bassusour在这种情况下,您可以使用Collections.reverse(xVærdi)
而不是for
循环进行反转。有关数组列表和数组之间的转换,请参见。
// 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());