Javascript rhino的控制台输入功能?

Javascript rhino的控制台输入功能?,javascript,console,rhino,Javascript,Console,Rhino,如何使用Rhino中的javascript从控制台接受变量?任何类似于cin或scanf的东西都可以使用Java类库。我认为这会奏效: var stdin = java.lang.System.in; var line = stdin.readLine(); 在这一点上,很容易将该行转换为您喜欢的任何类型,或者使用RegExp将其拆分为多个部分 这可能会造成Unicode输入的混乱,但我不确定是否有一种跨平台的好方法。这里有两行代码可以满足您的需要: var stdin = new Buffe

如何使用Rhino中的javascript从控制台接受变量?任何类似于cin或scanf的东西都可以使用Java类库。我认为这会奏效:

var stdin = java.lang.System.in;
var line = stdin.readLine();
在这一点上,很容易将该行转换为您喜欢的任何类型,或者使用RegExp将其拆分为多个部分


这可能会造成Unicode输入的混乱,但我不确定是否有一种跨平台的好方法。

这里有两行代码可以满足您的需要:

var stdin = new BufferedReader( new InputStreamReader(System['in']) )
var aLine = stdin.readLine();

在Rhino中,您必须记住在使用Java包之前导入它们。而且,Java字符串不同于JavaScript本机字符串,所以您可能需要强制转换它

下面是一个快速而脏的
readln()
,它在和中的作用相同:

我希望这将有助于您:

从控制台读取行的简单函数

function readline()
{
    var ist = new java.io.InputStreamReader(java.lang.System.in); 
    var bre = new java.io.BufferedReader(ist); 
    var line = bre.readLine();
    return line;
}
print("Name? ");
var name=readline();
print("Your name is: "+name);

在这种情况下,如何编写将变量设置到控制台输入的函数?函数getInput(变量){//此处的代码}
var ins = java.lang.System.in;
var newLine = java.lang.System.getProperty("line.separator");
var is = new java.io.InputStreamReader(ins);
var sb=new java.lang.StringBuilder();
var br = new java.io.BufferedReader(is);
var line = br.readLine();
while(line != null) {
    sb.append(line);
    sb.append(newLine);
    line = br.readLine();
}
var stdin = ""+sb.toString();//java string != javascript string
console.log("stdin:"+stdin);
function readline()
{
    var ist = new java.io.InputStreamReader(java.lang.System.in); 
    var bre = new java.io.BufferedReader(ist); 
    var line = bre.readLine();
    return line;
}
print("Name? ");
var name=readline();
print("Your name is: "+name);