Java 如果在某个位置有空格,则将hypen添加到文件中
如果子字符串位置(6,7)是一个空格,我希望用连字符替换该空格(使用while循环,因为此文件中有许多空格)。我尝试了下面,尝试使用级联来链接新行,但是空白仍然存在。 现在: ABCDEF YZ 我需要的是: ABCDEF-YZ 下面是一段代码: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
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命名它,我首先用线的值来启动它。假设输出中没有空格,然后检查行中是否有空格,用“-”替换,然后将其写入文件