2010-12-22 96 views

回答

7

下面是兩行會做你想要什麼:

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

在這種情況下,我該如何編寫一個將變量設置爲控制檯輸入的函數?函數getInput(變量){//代碼在這裏} – 2012-08-14 23:09:03

0

只需使用Java類庫。我認爲這會工作:

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

在這一點上很容易轉換線,以任何你喜歡的類型,或將它分成用一個RegExp件。

這可能斷章取義Unicode輸入,但我不相信有解決這個問題,跨平臺的好方法。

1

在犀牛你要記住導入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 
}()); 
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

我希望這將幫助你:

簡單的函數,從控制檯讀取一行

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