Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用java打印字符_Java - Fatal编程技术网

用java打印字符

用java打印字符,java,Java,我正在尝试逐字符打印给定字符串: public static void main(String[] args) { char c; Scanner scaner = new Scanner(System.in); int length = scaner.next().length(); System.out.println(length); int i = 0; while (i < length) { c = scaner

我正在尝试逐字符打印给定字符串:

public static void main(String[] args) {
    char c;
    Scanner scaner = new Scanner(System.in);
    int length = scaner.next().length();
    System.out.println(length);
    int i = 0;

    while (i < length) {
        c = scaner.next().charAt(i);
        System.out.println(c);
        i++;
    }
}
publicstaticvoidmain(字符串[]args){
字符c;
Scanner scaner=新扫描仪(System.in);
int length=scaner.next().length();
系统输出打印长度;
int i=0;
while(i

一旦此代码达到
int length=scaner.next().length()它不会继续。什么原因导致这种情况?

您应该将扫描的值存储在临时变量中

char c;
Scanner scaner = new Scanner(System.in);

// Storing scanned value
String nextStr = scaner.next();

int length = nextStr.length();
System.out.println(length);

int i = 0;
while(i < length){
    c = nextStr.charAt(i);
    System.out.println(c);
    i++;
}
charc;
Scanner scaner=新扫描仪(System.in);
//存储扫描值
字符串nextStr=scaner.next();
int length=nextStr.length();
系统输出打印长度;
int i=0;
while(i

在原始代码中,您在循环中反复调用
next
,但这不会返回原始扫描值,而是返回下一行输入。

您应该将扫描值存储在临时变量中

char c;
Scanner scaner = new Scanner(System.in);

// Storing scanned value
String nextStr = scaner.next();

int length = nextStr.length();
System.out.println(length);

int i = 0;
while(i < length){
    c = nextStr.charAt(i);
    System.out.println(c);
    i++;
}
charc;
Scanner scaner=新扫描仪(System.in);
//存储扫描值
字符串nextStr=scaner.next();
int length=nextStr.length();
系统输出打印长度;
int i=0;
while(i

在原始代码中,您在循环中反复调用
next
,但这不会返回原始扫描值,而是返回下一行输入。

调用next()后需要输入一些内容

亚历山大的回答也是如此

行:
int length=scaner.next().length()获取下一行,然后检查长度。
因此,您已经得到了下一行,再次调用next()会要求不同的输入


这就是为什么您应该始终将next()的返回值存储在变量中的原因

调用next()后需要输入一些内容

亚历山大的回答也是如此

行:
int length=scaner.next().length()获取下一行,然后检查长度。
因此,您已经得到了下一行,再次调用next()会要求不同的输入


这就是为什么您应该始终将next()的返回值存储在变量中的原因

在你输入内容之前,它不会进入下一行。在你输入内容之前,它不会进入下一行。根据作者的说法,这不是问题所在。一旦代码点击
int length=scaner.next().length(),代码就会停止int length=scaner.next().length(),代码就会停止