rhino的控制台输入功能?

发布于 2024-10-08 11:33:47 字数 64 浏览 0 评论 0原文

如何在 Rhino 中使用 javascript 接受来自控制台的变量?类似于 cin 或 scanf 的东西吗?

How do I accept a variable from the console with javascript in Rhino? anything similar to cin or scanf?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

杀手六號 2024-10-15 11:33:47

这里有两行可以满足您的要求:

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

Here's two lines that'll do what you want:

var stdin = new BufferedReader( new InputStreamReader(System['in']) )
var aLine = stdin.readLine();
坐在坟头思考人生 2024-10-15 11:33:47

我希望这会对您有所帮助:

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

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);

I hope this will help you:

Simple function that reads a line from console

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);
鲜血染红嫁衣 2024-10-15 11:33:47

在 Rhino 中,您必须记住先导入 Java 包,然后才能使用它们。另外,Java String 与 JavaScript 原生 String 不同,因此您可能需要对其进行强制转换。

这是一个快速而肮脏的 readln() ,它在两个 SpiderMonkeyRhino

 var readln = (typeof readline === 'function') ? (readline) : (function() {
     importPackage(java.io);
     importPackage(java.lang);
     var stdin = new BufferedReader(new InputStreamReader(System['in']));

     return function() {
         return String(stdin.readLine());  // Read line, 
     };                                    // force to JavaScript String
 }());

In Rhino you have to remember to import Java packages before you can use them. Also, Java String differs from JavaScript native String, so you may want to cast it.

Here is a quick-and-dirty readln() that works the same in both SpiderMonkey and Rhino:

 var readln = (typeof readline === 'function') ? (readline) : (function() {
     importPackage(java.io);
     importPackage(java.lang);
     var stdin = new BufferedReader(new InputStreamReader(System['in']));

     return function() {
         return String(stdin.readLine());  // Read line, 
     };                                    // force to JavaScript String
 }());
几度春秋 2024-10-15 11:33:47

只需使用Java类库即可。我认为这会起作用:

var stdin = java.lang.System.in;
var line = stdin.readLine();

此时可以很容易地将行转换为您喜欢的任何类型,或者使用正则表达式将其分成几部分。

这可能会使 Unicode 输入出现乱码,但我不确定是否有跨平台的好方法。

Just use the Java class library. I think this will work:

var stdin = java.lang.System.in;
var line = stdin.readLine();

At that point it's easy to convert the line to whatever type you like, or to break it into pieces using a RegExp.

This could garble Unicode input, but I'm not sure there's a good way around that, cross-platform.

淡淡绿茶香 2024-10-15 11:33:47
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);
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);
久而酒知 2024-10-15 11:33:47

您可以使用 Console 代替 BufferedReader

var console = java.lang.System.console() 
var name = console.readLine("What is your name? ");

Instead of a BufferedReader, you can use a Console:

var console = java.lang.System.console() 
var name = console.readLine("What is your name? ");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文