То, что я пытаюсь сделать, это взять java-файл, который выглядит так
public class test1 {
public static void main ( string[] args ) {
System.out.println( "This is Test 1." );
}
}
И предполагается, что выводить текстовый файл с правильными интервалами и отступами. Пока я могу получить правильный отступ для первых строк. Но у меня проблемы с моим вторым циклом for, который печатает пробелы для конечных скобок. Конечные скобки печатаются наружу, как первые 3 строки, а не внутрь. Извините, если мои переменные сбивают с толку.
Вот мой код до сих пор
public class JavaJustifier {
public static void main( String[] args )
throws FileNotFoundException {
for( int i = 1; i < 6; i++ ) {
justifyJava( "Test" + i + ".java",
"Justified" + i + ".txt",
4 );
}
}
public static void justifyJava( String inputFileName,
String outputFileName,
int tabSize )
throws FileNotFoundException {
int counter = 0;
int counter2 = 0;
int blah = 0;
File f = new File(inputFileName);
File p = new File(outputFileName);
if (p.exists())
p.delete();
Scanner input = new Scanner (f);
PrintStream name = new PrintStream(new File(outputFileName));
while (input.hasNextLine()) {
String line = input.nextLine();
Scanner lineScan = new Scanner(line);
if (line.contains("{") == true) {
name.print("{\r\n");
counter++;
for (int i = 1; i <= counter; i++) {
for (int j = 0; j <= tabSize; j++) {
name.print(" ");
}
}
System.out.println(counter);
} else if (line.contains("}") == true) {
name.print("\r\n");
counter--;
for (int x = 1; x <= counter; x++) {
for (int y = 1; y <= tabSize; y++) {
name.print(" ");
}
}
name.print("}");
System.out.println(counter);
} else {
name.print(line);
}
}
}
Что это дает мне
public class Test1
{
public static void main( String[] args )
{
System.out.println( "This is Test 1." );
}
}
Чего я желаю, так это
public class Test1
{
public static void main( String[] args )
{
System.out.println( "This is Test 1." );
}
}
if (line.contains("{") == true) {
, просто пишитеif (line.contains("{")) {
- person jlordo   schedule 16.05.2013if (line.contains("{") == true) {
, вы в основном игнорируете остальную часть текста и обрабатываете только{
. - person zEro   schedule 20.05.2013