我使用扫描程序来获取String的输入。我的代码如下所示
String s=scan.next();
if(scan.hasNext()){
s +=scan.nextLine();
}
但问题是它不是在开始时读取空格。
示例
Input : Hello World
Output should be : Hello World
Output is :Hello World
请澄清错误是什么,并帮助我纠正。
答案 0 :(得分:1)
function secondaryOutput() {
}
</script>
<!--The <select> tag is a drop-down menu for a secondary input method.-->
<select>
<option value="1"; id="1"; onclick="secondaryOutput()"; class="Second">1</option>
<option value="2"; id="2"; onclick="secondaryOutput()"; class="Second">2</option>
<option value="3"; id="3"; onclick="secondaryOutput()"; class="Second">3</option>
<option value="4"; id="4"; onclick="secondaryOutput()"; class="Second">4</option>
<option value="5"; id="5"; onclick="secondaryOutput()"; class="Second">5</option>
<option value="6"; id="6"; onclick="secondaryOutput()"; class="Second">6</option>
<option value="7"; id="7"; onclick="secondaryOutput()"; class="Second">7</option>
<option value="8"; id="8"; onclick="secondaryOutput()"; class="Second">8</option>
<option value="9"; id="9"; onclick="secondaryOutput()"; class="Second">9</option>
<option value="10"; id="10"; onclick="secondaryOutput()"; class="Second">10</option>
<option value="11"; id="11"; onclick="secondaryOutput()"; class="Second">11</option>
<option value="12"; id="12"; onclick="secondaryOutput()"; class="Second">12</option>
<option value="13"; id="13"; onclick="secondaryOutput()"; class="Second">13</option>
<option value="14"; id="14"; onclick="secondaryOutput()"; class="Second">14</option>
<option value="15"; id="15"; onclick="secondaryOutput()"; class="Second">15</option>
<option value="16"; id="16"; onclick="secondaryOutput()"; class="Second">16</option>
<option value="17"; id="17"; onclick="secondaryOutput()"; class="Second">17</option>
<option value="18"; id="18"; onclick="secondaryOutput()"; class="Second">18</option>
<option value="19"; id="19"; onclick="secondaryOutput()"; class="Second">19</option>
<option value="20"; id="20"; onclick="secondaryOutput()"; class="Second">20</option>
<option value="21"; id="21"; onclick="secondaryOutput()"; class="Second">21</option>
<option value="22"; id="22"; onclick="secondaryOutput()"; class="Second">22</option>
<option value="23"; id="23"; onclick="secondaryOutput()"; class="Second">23</option>
<option value="24"; id="24"; onclick="secondaryOutput()"; class="Second">24</option>
<option value="25"; id="25"; onclick="secondaryOutput()"; class="Second">25</option>
<option value="26"; id="26"; onclick="secondaryOutput()"; class="Second">26</option>
<option value="27"; id="27"; onclick="secondaryOutput()"; class="Second">27</option>
<option value="28"; id="28"; onclick="secondaryOutput()"; class="Second">28</option>
<option value="29"; id="29"; onclick="secondaryOutput()"; class="Second">29</option>
<option value="30"; id="30"; onclick="secondaryOutput()"; class="Second">30</option>
<option value="31"; id="31"; onclick="secondaryOutput()"; class="Second">31</option>
<option value="34"; id="34"; onclick="secondaryOutput()"; class="Second">34</option>
<option value="35"; id="35"; onclick="secondaryOutput()"; class="Second">35</option>
<option value="36"; id="36"; onclick="secondaryOutput()"; class="Second">36</option>
<option value="37"; id="37"; onclick="secondaryOutput()"; class="Second">37</option>
<option value="38"; id="38"; onclick="secondaryOutput()"; class="Second">38</option>
</select>
方法用于让我们在没有前面的分隔符的情况下获得下一个单词(标记)。 Scanner使用的默认分隔符是一个或多个空格,因此它被设计忽略。
如果您希望next()
保留整行(或当前行的其余部分),包括分隔符,请跳过s
并仅使用next()
。
nextLine()
但要注意我们在Scanner is skipping nextLine() after using next(), nextInt() or other nextFoo() methods中描述的String s = scan.hasNextLine() ? scan.nextLine() : "";
和next
混合时经常遇到的问题
答案 1 :(得分:0)
阅读扫描仪documentation
scan.next()
根据空格将输入分解为标记。
扫描仪使用分隔符模式将其输入分解为标记, 默认情况下匹配空格。
试试这个:
String s="";
if(scan.hasNext()){
s +=scan.nextLine();
}