Strip block comments: Difference between revisions

Content deleted Content added
m →‎{{header|C}}: prettier
m →‎{{header|Java}}: Make clearer by refactoring subtasks into methods
Line 604: Line 604:
=={{header|Java}}==
=={{header|Java}}==
<lang java>import java.io.*;
<lang java>import java.io.*;
import java.lang.StringBuilder;


public class StripBlockComments{
public class StripBlockComments{
public static void main(String[] args) {
public static String readFile(String filename) {
BufferedReader reader = new BufferedReader(new FileReader(filename));
if (args.length < 3) {
try {
System.out.println("Usage: BeginToken EndToken StringToProcess");
StringBuilder fileContents = new StringBuilder();
} else {
String beginToken = args[0];
char[] buffer = new char[4096];
while (reader.read(buffer, 0, 4096) > 0) {
String endToken = args[1];
fileContents.append(buffer);
String inputFile = args[2];
String input = "";
try {
BufferedReader reader = new BufferedReader(new FileReader(inputFile));
StringBuilder fileContents = new StringBuilder();
char[] buffer = new char[4096];
while (reader.read(buffer, 0, 4096) > 0) {
fileContents.append(buffer);
}
input = fileContents.toString();
} catch (Exception e) {
e.printStackTrace();
System.exit(1);
}
}
return fileContents.toString();
StringBuilder output = new StringBuilder();
} finally {
while (true) {
reader.close();
int begin = input.indexOf(beginToken);
}
int end = input.indexOf(endToken, begin+beginToken.length());
}
if (begin == -1) {

output.append(input);
public static String stripComments(String beginToken, String endToken,
break;
String input) {
}
StringBuilder output = new StringBuilder();
output.append(input.substring(0, begin));
while (true) {
input = input.substring(end + endToken.length(), input.length());
int begin = input.indexOf(beginToken);
int end = input.indexOf(endToken, begin+beginToken.length());
if (begin == -1 || end == -1) {
output.append(input);
return output.toString();
}
}
System.out.println(output.toString());
output.append(input.substring(0, begin));
input = input.substring(end + endToken.length());
}
}

public static void main(String[] args) {
if (args.length < 3) {
System.out.println("Usage: BeginToken EndToken FileToProcess");
System.exit(1);
}

String begin = args[0];
String end = args[1];
String input = args[2];

try {
System.out.println(stripComments(begin, end, readFile(input)));
} catch (Exception e) {
e.printStackTrace();
System.exit(1);
}
}
}
}