以下代码用于计算String中的数据:rani = String rani ="32*0.25"; 并给出正确的输出为8.0
import javax.script.ScriptEngineManager;
import javax.script.ScriptEngine;
import javax.script.ScriptException;
public class StringMathEngine {
public static void main(String[] args) throws ScriptException {
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("JavaScript");
String rani = "32*0.25";
System.out.println(engine.eval(rani));
}
}
Run Code Online (Sandbox Code Playgroud)
但是在以下代码中使用时失败:
import javax.script.ScriptEngineManager;
import javax.script.ScriptEngine;
import javax.script.ScriptException;
public class StringMathEngine {
public static void main(String[] args) throws ScriptException {
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("JavaScript");
String[]rani = {"s", "32*0.25", "r", "32*0.75+16", "r", "16", "s", "32"};
for(int n=0;n<rani.length; …Run Code Online (Sandbox Code Playgroud) 我有一个java字符串'str'
String str= " 1p qrn qr2 qst 1a1 4at qa qb1 st1 sp su";
Run Code Online (Sandbox Code Playgroud)
我想拆分它以获得以下'parts'数组
String [] parts={"1p","qrn qr2 qst" ,"1a1 4at" ,"qa qb1" ,"st1 sp su"};
Run Code Online (Sandbox Code Playgroud)
'parts'的元素以char 0-9,a,q,s开头.
帮助我找到一个合适的正则表达式:
String [] parts= str.split(a suitable regex);
Run Code Online (Sandbox Code Playgroud)
或任何其他可以做到的选择.
以下代码将字符串数组'one'创建为[c,a,t,a,n,d,d,o,g].现在我想创建一个int数组'two',其中每个'a'的位置是3,所有其他位置都填充为5
int two= {5, 3, 5, 3, 5, 5, 5, 5, 5}
Run Code Online (Sandbox Code Playgroud)
但是代码将每个元素赋予等于5,因此它打印为
5 5 5 5 5 5 5 5 5 :
Run Code Online (Sandbox Code Playgroud)
我用的代码从这里开始:
import com.google.common.collect.ObjectArrays;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.apache.commons.lang3.ArrayUtils;
public class StringInt {
public static void main(String[] args) {
String str= "cat and dog";
String[] word = str.split("\\s");
String[] one = new String[0];
for(int i=0; i<word.length; i++){
one = ArrayUtils.addAll(one, word[i].split("(?!^)"));
}
System.out.println("One : " + Arrays.toString(one));
int[] b = new int[one.length];
for(int j=0; j<one.length; …Run Code Online (Sandbox Code Playgroud)