Java 字符串数组在for循环中初始化索引0时忽略索引0
请注意,它如何完全忽略索引0中的输入,而不在索引0中“插入”任何内容Java 字符串数组在for循环中初始化索引0时忽略索引0,java,arrays,string,indexing,Java,Arrays,String,Indexing,请注意,它如何完全忽略索引0中的输入,而不在索引0中“插入”任何内容 import java.util.Scanner; 公开课考试{ 公共静态扫描仪输入=新扫描仪(System.in); 公共静态void main(字符串[]args){ int num=3; 字符串[]strArr=新字符串[num]; 阿斯特马克(斯特拉尔); } 公共静态无效arrStrMaker(字符串[]arr){ 对于(int i=0;i
import java.util.Scanner;
公开课考试{
公共静态扫描仪输入=新扫描仪(System.in);
公共静态void main(字符串[]args){
int num=3;
字符串[]strArr=新字符串[num];
阿斯特马克(斯特拉尔);
}
公共静态无效arrStrMaker(字符串[]arr){
对于(int i=0;i
输出:
索引[0]的字符串
*请注意,它没有忽略索引0,而是等待输入
有什么问题吗?
当我使用intnum=input.nextInt()时代码>忽略索引0。
当我使用intnum=3时代码>在索引0处等待输入。nextLine
和nextLine
(事实上,nextLine
和任何其他nextany
调用的非nextLine
)之间的交互非常奇怪。我建议你这样做:
import java.util.Scanner;
public class test {
public static Scanner input = new Scanner(System.in);
public static void main(String[] args) {
int num = 3;
String[] strArr = new String[num];
arrStrMaker(strArr);
}
public static void arrStrMaker(String[] arr){
for (int i = 0; i < arr.length; i++) {
System.out.println("String for index ["+i+"]");
arr[i] = input.nextLine();
System.out.println(arr[i]);
}
}
}
创建扫描仪(新扫描仪(…)
)后,每次创建扫描仪时,请立即使用next()
而不是nextLine()
。这会将“分隔符”设置为仅换行符,因此现在您的扫描仪将在用户每次点击enter键时为您提供1个标记;这通常是您希望从扫描仪中获取的内容。请尝试从您的输入中跳过换行符,如下所示:
`input.useDelimiter("\r?\n");`
尝试intnum=input.nextInt();input.nextLine()代码>Re请不要因为代码或输出中出现单词/名称而更改为代码格式。当其他人必须审查时,请进行实质性更改。请在这样做时删除“谢谢”、“恳求”等内容。@philipxy,谢谢您的指点。我相信我明白你的意思了。但是,我不知道该怎么处理这个帖子。我不知道你说的不知道该怎么办是什么意思。你能重新措辞吗?你可以通过我上面给出的链接上的标题链接查看我是如何编辑这篇文章的(以及我对这篇文章的评论)(以及编辑历史)。
import java.util.Scanner;
public class test {
public static Scanner input = new Scanner(System.in);
public static void main(String[] args) {
int num = 3;
String[] strArr = new String[num];
arrStrMaker(strArr);
}
public static void arrStrMaker(String[] arr){
for (int i = 0; i < arr.length; i++) {
System.out.println("String for index ["+i+"]");
arr[i] = input.nextLine();
System.out.println(arr[i]);
}
}
}
`input.useDelimiter("\r?\n");`
arr[i] = input.nextLine();
input.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");