Итак, у меня есть метод, который должен прочитать файл и определить, является ли символ после символа цифрой или словом. Если это число, я хочу удалить перед ним символ, перевести число в двоичное и заменить его в файле. Если это слово, сначала я хочу установить для символов число 16, но затем, если используется другое слово, я хочу добавить 1 к исходному числу.
Вот вход, который я использую:
Вот мой метод:
try {
ReadFile files = new ReadFile(file.getPath());
String[] anyLines = files.OpenFile();
int i;
int wordValue = 16;
// to keep track words that are already used
Map<String, Integer> wordValueMap = new HashMap<String, Integer>();
for (String line : anyLines) {
if (!line.startsWith("@")) {
continue;
}
line = line.substring(1);
Integer binaryValue = null;
if (line.matches("\\d+")) {
binaryValue = Integer.parseInt(line);
}
else if (line.matches("\\w+")) {
binaryValue = wordValueMap.get(line);
// if the map doesn't contain the word value, then assign and store it
if (binaryValue == null) {
binaryValue = wordValue;
wordValueMap.put(line, binaryValue);
++wordValue;
}
}
// --> I want to replace with this
System.out.println(Integer.toBinaryString(binaryValue));
}
for (i=0; i<anyLines.length; i++) {
// --> Here are a bunch of instructions that replace certain strings - they are the lines after @ symbols <--
// --> I'm not going to list them ... <--
System.out.println(anyLines[i]);
Итак, вопрос в том, как заменить те строки, которые начинаются с ("@" строка за строкой, по порядку?
Я в основном хочу, чтобы вывод выглядел так:
101
1110110000010000
10000
1110001100001000
10001
1110101010001000
10001
1111000010001000
10000
1110001110001000
10010
1110001100000110
10011
1110101010000111
10010
1110101010000111