Мне нужно преобразовать исходный код Java из стиля фигурных скобок следующей строки в стиль фигурных скобок конца строки.
Я нашел способ сделать это с отформатированной строкой (с \ n и \ t), и она отлично работает, но я должен прочитать исходный код из файла.
Следующий код
Код стиля следующей скобки:
public class Test
{
public static void main(String[] args)
{
// Some statements
}
}
следует преобразовать в:
public class Test {
public static void main(String[] args) {
// Some statements
}
}
Теперь,способ, которым я подошел к этому, следующий:
Упомянутый код с \ n и \ t выглядит следующим образом (мы называем это String s2 )
public class Test\n" +
"{\n" +
"\tpublic static void main(String[] args)\n" +
"\t{\n" +
"\t\t// Some statements\n" +
"\t}\n" +
"}\n
Затем я написал следующий код, чтобы преобразовать его в стиль конца строки.
s2 = s2.replaceAll("\\t\\{", "{");
StringBuilder stringBuilder = new StringBuilder(s2);
for (int i = 0; i < stringBuilder.length(); i++) {
if (stringBuilder.charAt(i) == '{') {
stringBuilder.deleteCharAt(i);
stringBuilder.insert(i - 1, " {");
}
}
Это работает, насколько я проверял.
Теперь актуальная проблема;
Когда я читаю из файла, в исходном коде нет \ t и \ n, и я хотел бы преобразовать исходный код в строку, которая, как и в приведенной выше строке (s2), имеет \ t и \n.
Просто чтобы уточнить, я использую следующий метод для чтения с ввода:
File sourceFile = new File("oldFormattedSourceCode.txt");
String oldFormatString = "";
try (Scanner input = new Scanner(sourceFile);) {
while (input.hasNext()) {
oldFormatString += input.nextLine();
}
System.out.println("Old Format String is: " + oldFormatString.toString());
} catch (FileNotFoundException ex) {
System.out.print(ex.getMessage());
}
, который дает мне следующий вывод
Old Format String is: public class Test{ public static void main(String[] args) { // Some statements }}
Иэта строка мне не нужна, потому что в ней нет \ n и \ t, от чего зависит код, который я написал.
Пожалуйста, предложите.