我想知道如何解决一个问题,你需要通过使用递归从文件中读取文本(包含java代码)来正确缩进文本。原始输出将没有任何 标签。
这就是目标:
这是代码,但我需要调整它以从文本文件中读取:
void indent( int m, int n )
{
System.out.println( m ); // Forward Printing
if ( m < n )
{
indent( m + 1, n );
System.out.println( m ); // Backward Printing
}
}
答案 0 :(得分:0)
好的,算法可以像......
function indent(theText, indentCharCount) {
for each character of the text...
if it is an end-of-line character...
concatenate spaces to return string using indentCharCount
else if it is a '{' character...
scan ahead through characters to find matching '}' character
recursively call indent() function passing...
characters between { and } for 'theText' param
indentCharCount+2 for 'indentCharCount' param
concatenate return value of indent() to return string
set loop index so that the next character will be the matched '}'
else (it's some other character)
concatenate character to return string
return the concatenated string
}
我不想写出Java中的所有代码。如果你正在做家庭作业,我宁愿你学点东西!但这是一个基本的递归算法,我认为适合你的问题。