Java 将字符复制到同一文件中其他位置的代码

Java 将字符复制到同一文件中其他位置的代码,java,groovy,Java,Groovy,嗨,我有一个输入文件,我需要得到输出。我也在尝试java代码和Groovy代码,但找不到结果。如果有人能帮忙,请告诉我。输入为txt文件,所有值仅在一列中 输入: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 输出: A B C D E A F G H I A J K L M N O P Q R N S T U V N W X Y Z 这就是我迄今为止所尝试的: data['R1']= R.toString() f

嗨,我有一个输入文件,我需要得到输出。我也在尝试java代码和Groovy代码,但找不到结果。如果有人能帮忙,请告诉我。输入为txt文件,所有值仅在一列中

输入:

A B C D E
  F G H I
  J K L M 
N O P Q R
  S T U V
  W X Y Z
输出:

A B C D E
A F G H I
A J K L M 
N O P Q R
N S T U V
N W X Y Z
这就是我迄今为止所尝试的:

data['R1']= R.toString()
for (int i=0; i<R.length(); i++) { 
    if (i==1) R['i']= 'A';
    if (i==2) R[i] = 'A';
    if (i==4) R[i] ='S';
    if (i ==5) R['i'] = 'S'; 
 }
println R
data['R1']=R.toString()

对于(inti=0;i,这里是Groovy中的一个示例

// Mock the input file
def input = """A B C D E
  F G H I
  J K L M 
N O P Q R
  S T U V
  W X Y Z"""

def inputFile = new StringReader(input)

// Process the input file
inputFile
    .iterator()
    .collect { it.split(" ") } // Break each line into columns.
    .inject([keep : null, rows : []]) { context, row ->
        if(row[0]) {
            /*
             * If the row contains a value in the first column,
             * remember the value and keep the row as-is.
             */
            [
                keep : row[0], 
                rows : context.rows + row
            ]
        } else {
            /*
             * If the row doesn't have a value in the first column,
             * prepend the remembered value to the row.
             */
            [
                keep : context.keep, 
                rows : context.rows << [context.keep] + row.drop(2).flatten()
            ]
        }
    }
    .rows // The context is no longer needed, so just grab the rows form it.
//模拟输入文件
def input=“”A B C D E
F G H I
J K L M
N无P Q R
S T U V
W X Y Z
def inputFile=新的StringReader(输入)
//处理输入文件
输入文件
.iterator()
.collect{it.split(“”)}//将每行拆分为列。
.inject([keep:null,rows:[]){context,row->
如果(第[0]行){
/*
*如果行在第一列中包含值,
*记住该值并保持该行不变。
*/
[
保留:第[0]行,
行:context.rows+row
]
}否则{
/*
*如果行的第一列中没有值,
*将记住的值前置到行。
*/
[
keep:context.keep,

rows:context.rows data['R1']=R.toString()for(int i=0;我也尝试过Java代码。但它不起作用..逻辑是只复制上面的单元格并在空白处打印出来,但我无法。当你有代码等时,请编辑问题。同样“不起作用”是一个糟糕的错误描述。那么你的代码是什么语言?Java还是JavaScript?嗨,Emmanuel,我尝试过这样做,但在我尝试运行它时,它什么也没做。没有生成任何输出。请告诉我,在定义输入“”a B C D E及其下的行时,我使用了|和.StripMargin(),如果它不读取“”多行输入它将通过此方法读取。但它仍然没有处理任何内容。此外,inputFile.iterator()必须像这样编写,或者像您在示例中向我展示的那样编写。我是否需要在.collect和.inject行之前包含inputFile。因为它没有解析代码。