不确定为什么此代码不按空格拆分字符串

6mzjoqzu  于 2021-08-20  发布在  Java
关注(0)|答案(1)|浏览(367)

**已关闭。**此问题不可复制或由打字错误引起。它目前不接受答案。
**想要改进此问题?**更新问题,使其位于堆栈溢出主题上。

两天前关门了。
改进这个问题
我正在制作一个程序,我基本上使用fileoutputstream将数据写入.txt文件,然后使用fileinputstream检索它,我有一个名为“readdatafile”的方法,它使用fileinputstream获取先前保存的字符,解密它们(在写入.txt时进行了非常基本的加密),然后返回一个字符字符串。然后,我有了一个方法,该方法应该接受该字符串,并将每个单词放在新行上,然后再通过jtextarea将其设置为在ui中显示。

String data = readDataFile(dataFile);
        for(int i = 0; i < data.length()-1; i++){
            char c = data.charAt(i);

            if(c == (char) 0){
                data = data.substring(0, i+1) + "\n" + data.substring(i+2);
                System.out.println("Char is space");
            }
        }
        output2.setText(data);

这就是方法中的内容,出于某种原因,它不会在末尾拆分字符串。output2 witch是一个jtextarea,设置为“www”,空格中带有问号。“char is space”行从未运行过,所以它与if语句有关,但我不确定是什么。如果有人能帮忙,那太好了,谢谢!

ygya80vv

ygya80vv1#

你在试图比较 if(c == (char) 0) 这永远不会是真的,而且子字符串将丢失空格后的第一个字符,所以你必须这样做 data = data.substring(0, i+1) + "\n" + data.substring(i+1); 而不是 data = data.substring(0, i+1) + "\n" + data.substring(i+2); ```
String data = "Stack Overflow";
for(int i = 0; i < data.length()-1; i++){
char c = data.charAt(i);

    if(c == ' '){
        data = data.substring(0, i+1) + "\n" + data.substring(i+1);
        System.out.println("Char is space");
    }
}
System.out.println(data);

相关问题