You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JDoodle API中实现用户输入?附PHP请求及Java代码示例

在JDoodle API中实现Java代码的用户输入处理

嘿,我来帮你搞定这个问题!你的Java代码用了Scanner读取标准输入,但目前的JDoodle API请求里没传递输入数据,只需要给请求参数加个stdin字段就能解决这个事儿。

核心逻辑说明

JDoodle API提供了stdin参数,专门用来传递程序运行时需要的控制台输入内容。它会模拟用户在终端手动输入的操作,如果有多个输入项,还可以用换行符\n来分隔不同的输入值。

修改后的请求代码

首先更新你的$postData数组,新增stdin字段:

// 这里可以是固定测试值,也可以是从前端用户处获取的输入变量
$userInput = "5"; // 模拟用户输入整数5
$postData = array(
    "script" => $code,
    "language" => $language,
    "versionIndex" => "2",
    "clientId" => "ed3d8b92ac70bc1c3ad2382d334afc1d",
    "clientSecret" => $hiddenKey,
    "stdin" => $userInput // 新增的输入参数,传递用户输入内容
);

请求上下文的创建代码不需要大改动,因为json_encode会自动处理新增的字段:

$context = stream_context_create(array(
    'http' => array(
        'method' => 'POST',
        'header' => "Content-Type: application/json\r\n",
        'content' => json_encode($postData)
    )
));

效果验证

当你发送这个请求后,JDoodle会把stdin里的内容作为标准输入传给你的Java程序,程序里的Scanner就能正常读取到值了。比如上面设置$userInput = "5",程序运行后会输出:

Enter x = 
X = 5

如果你的Java代码需要多个输入(比如先输入整数再输入字符串),只需要把stdin设为"5\nHelloWorld"这样的格式,程序会按顺序读取这些输入内容。

内容的提问来源于stack exchange,提问作者Rajat Patil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 11:44:07