Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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 如果在某个位置有空格,则将hypen添加到文件中_Java_File_Io - Fatal编程技术网

Java 如果在某个位置有空格,则将hypen添加到文件中

Java 如果在某个位置有空格,则将hypen添加到文件中,java,file,io,Java,File,Io,如果子字符串位置(6,7)是一个空格,我希望用连字符替换该空格(使用while循环,因为此文件中有许多空格)。我尝试了下面,尝试使用级联来链接新行,但是空白仍然存在。 现在: ABCDEF YZ 我需要的是: ABCDEF-YZ 下面是一段代码: String line= inputFile.readLine(); while(line!= null) { if (line.charAt(6) == ' ') { String

如果子字符串位置(6,7)是一个空格,我希望用连字符替换该空格(使用while循环,因为此文件中有许多空格)。我尝试了下面,尝试使用级联来链接新行,但是空白仍然存在。 现在: ABCDEF YZ

我需要的是: ABCDEF-YZ

下面是一段代码:

String line= inputFile.readLine();

   while(line!= null)
   {
       if (line.charAt(6) == ' ')           {
           String outputWithHyphen = line.substring(0,6) + '-' + 
           line.substring(7);
           outputFile.println(outputWithHyphen);
       }
       outputFile.println(line); 
       line= inputFile.readLine();
    } 
删除了if子句,现在可以工作了,但是我真的想要if子句

           String outputWithHyphen = lineOfText.substring(0,6) + '-' + 
           lineOfText.substring(7);

           outputFile.println(outputWithHyphen);
           lineOfText = inputFile.readLine();
谢谢大家的支持


TL;DR:将文本文件中特定位置的所有连字符替换为空格

如果我从上面的评论中正确理解了这一点,那么您希望将所有空格替换为破折号,而不仅仅是在一个特定位置。您可以使用replaceAll函数执行此操作,而不是逐个字符循环:

  String myLine = line.replaceAll(" ", "-");

试试这个,这会有用的:

String line= inputFile.readLine();

   while(line!= null)
   {
       String outputWithHyphen = line;
       if (line.charAt(6) == ' '){
           outputWithHyphen = line.substring(0,6) + '-' + 
           line.substring(7);
       }
       outputFile.println(outputWithHyphen);
       line= inputFile.readLine();
    } 

为什么使用substring()检查单个字符(它不必要地创建了一个新字符串)可能存在重复?为什么不直接使用
如果(lineOfText.charAt(6)=''
?那么您会遇到更多问题。比如你把
奇怪地混在一起,事实上你在
如果
@Tom是的,我没有;我没注意到。OP的代码似乎没有定义名为“lineOfText”的变量,而只是定义了“text”。我的评论仍然适用-使用
if(line.charAt(5)='')
Used if(line.charAt(5)=''),新文件与原始文件相同是的,这很有效,很抱歉,我应该添加我实际需要的许多空格。只是这个索引的空白是我想删除的。我不知道你的主要目的是什么,告诉我你想要什么,以便我能帮助你。输出是什么?看,你想在你的文件中写一些东西,让它用HyPHEN命名它,我首先用线的值来启动它。假设输出中没有空格,然后检查行中是否有空格,用“-”替换,然后将其写入文件