2010-12-22 5 views

Antwort

7

Hier zwei Linien, die tun, was Sie wollen:

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

In diesem Fall, wie kann ich eine Funktion schreiben, die eine Variable auf den Konsoleneingang setzt? Funktion getInput (Variable) {// Code geht hier} –

0

Verwenden Sie einfach die Java-Klassenbibliothek. Ich denke, das funktioniert:

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

An diesem Punkt ist es einfach, die Linie zu konvertieren welcher Art auch immer Sie mögen, oder sie in Stücke zu brechen ein RegExp verwenden.

Dies könnte Unicode-Eingabe verstopfen, aber ich bin mir nicht sicher, es gibt einen guten Weg, dass plattformübergreifend.

1

In Rhino Sie dürfen nicht vergessen, Java-Pakete importieren, bevor Sie sie verwenden können. Außerdem unterscheidet sich die Java-Zeichenfolge von der systemeigenen JavaScript-Zeichenfolge. Daher möchten Sie sie möglicherweise konvertieren.

Hier ist eine schnelle und unsaubere readln(), die gleich in beiden SpiderMonkey und Rhino funktioniert:

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 
}()); 
0
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); 
0

Ich hoffe, dies wird Ihnen helfen:

einfache Funktion, die liest eine Zeile von Konsole

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