Java输入缓冲区中是否存在零字符持久性?

学习...

我正在运行一个循环以接受输入。奇怪的是,我的程序似乎认为我的缓冲区应该为空时我有一个空字符。我写了一堂小课来演示。

NullCharTest:

package Scratch;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class NullCharTest {

    public void testNullChar() throws IOException{

        for ( int i = 0; i < 2; i++){

            String s = readString();
            while (s != null) {
                s = readString();
            }
            System.out.println(s);
        }
    }

    private String readString() throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        return in.readLine();
    }

}

主要的:

package Scratch;

import java.io.IOException;

public class Main {

    public static void main(String[] args) throws IOException{
        NullCharTest nct = new NullCharTest();
        nct.testNullChar();
    }

}

输出类似于:

qwe null null [[编辑:输出仅是null,如Andreas指出的那样为null。]

输入“ e”后,我输入Ctrl + D。

为什么for循环在第二次运行时不接受输入?s第二次不是null-它是一个新的String引用,只是被要求引用readString()输出...因此,大概我的程序应该在for循环的第二次运行中等待用户输入...

谢谢!

安德烈亚斯(Andreas)

这段代码是没有意义的:

String s = readString();
while (s != null) {
    s = readString();
}

while循环结束时,s 它将为null,因为这是循环正常完成的唯一方法。

然后s,您打印的值,即您打印的值null

这被一个for迭代2次循环所包围,这意味着它将始终结束null两次打印

q w e不输出,但你输入的输入。输出为nullnull始终,无论您按之前键入什么Ctrl+D

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在gvim中输入零字符

来自分类Dev

是否可以从套接字到带有“零复制”的缓冲区中的splice()?

来自分类Dev

报废文件中的持久性非UTF-8字符

来自分类Dev

Node.js:普通字符串,base64字符串和缓冲区比较中的UUID之间存在巨大的性能差异

来自分类Dev

是否可以在C ++中以零拷贝拼接缓冲区?

来自分类Dev

如何从字符串中删除空字符(零字符)

来自分类Dev

蜂巢:计算字符串的子字符串中的非零字符

来自分类Dev

如何从字符串中删除空字符(零字符)

来自分类Dev

蜂巢:计算字符串的子字符串中的非零字符

来自分类Dev

CUDA 中的持久缓冲区

来自分类Dev

如何检测Vimscript中是否存在特定缓冲区?

来自分类Dev

JAVA:嵌套的do-while循环如何丢弃输入缓冲区中的字符?

来自分类Dev

如何在Python中为变量分配二进制零字符?

来自分类Dev

媒体按钮键入零字符

来自分类Dev

媒体按钮键入零字符

来自分类Dev

缓冲区溢出是否仍然存在?

来自分类Dev

缓冲区溢出是否仍然存在?

来自分类Dev

是否在rc.local中设置持久预读缓冲区?

来自分类Dev

Java中的字符串缓冲区问题

来自分类Dev

将字节缓冲区转换为UTF8字符串

来自分类Dev

java.io.IOException:流关闭或底层输入流返回零字节,同时从request.getInputStream()中读取字符

来自分类Dev

java.io.IOException:流关闭或底层输入流返回零字节,同时从request.getInputStream()中读取字符

来自分类Dev

字符串结尾的额外零字符出现在C ++中,用于范围循环

来自分类Dev

如何在Python 2.x中创建定义长度的零字符串

来自分类Dev

gtk文本输入从套接字接收缓冲区?

来自分类Dev

检查输入字符串是否超过缓冲区限制(崩溃)

来自分类Dev

Java中的缓冲区大小

来自分类Dev

Java中的非阻塞缓冲区

来自分类Dev

Java中的循环缓冲区?

Related 相关文章

  1. 1

    如何在gvim中输入零字符

  2. 2

    是否可以从套接字到带有“零复制”的缓冲区中的splice()?

  3. 3

    报废文件中的持久性非UTF-8字符

  4. 4

    Node.js:普通字符串,base64字符串和缓冲区比较中的UUID之间存在巨大的性能差异

  5. 5

    是否可以在C ++中以零拷贝拼接缓冲区?

  6. 6

    如何从字符串中删除空字符(零字符)

  7. 7

    蜂巢:计算字符串的子字符串中的非零字符

  8. 8

    如何从字符串中删除空字符(零字符)

  9. 9

    蜂巢:计算字符串的子字符串中的非零字符

  10. 10

    CUDA 中的持久缓冲区

  11. 11

    如何检测Vimscript中是否存在特定缓冲区?

  12. 12

    JAVA:嵌套的do-while循环如何丢弃输入缓冲区中的字符?

  13. 13

    如何在Python中为变量分配二进制零字符?

  14. 14

    媒体按钮键入零字符

  15. 15

    媒体按钮键入零字符

  16. 16

    缓冲区溢出是否仍然存在?

  17. 17

    缓冲区溢出是否仍然存在?

  18. 18

    是否在rc.local中设置持久预读缓冲区?

  19. 19

    Java中的字符串缓冲区问题

  20. 20

    将字节缓冲区转换为UTF8字符串

  21. 21

    java.io.IOException:流关闭或底层输入流返回零字节,同时从request.getInputStream()中读取字符

  22. 22

    java.io.IOException:流关闭或底层输入流返回零字节,同时从request.getInputStream()中读取字符

  23. 23

    字符串结尾的额外零字符出现在C ++中,用于范围循环

  24. 24

    如何在Python 2.x中创建定义长度的零字符串

  25. 25

    gtk文本输入从套接字接收缓冲区?

  26. 26

    检查输入字符串是否超过缓冲区限制(崩溃)

  27. 27

    Java中的缓冲区大小

  28. 28

    Java中的非阻塞缓冲区

  29. 29

    Java中的循环缓冲区?

热门标签

归档