означает постинкремент. В отличие от предварительного увеличения с

у прочитать файл и определить, является ли символ после символа цифрой или словом. Если это число, я хочу удалить перед ним символ, перевести число в двоичное и заменить его в файле. Если это слово, сначала я хочу установить для символов число 16, но затем, если используется другое слово, я хочу добавить 1 к исходному числу. Вот что я хочу:

Если имя файла читается (... представляет строку, которую не нужно переводить):

%10
...
%firststring 
...
%secondstring
...
%firststring
...
%11
...

and so on...

Я хочу, чтобы это выглядело так:

0000000000001010 (10 in binary)
...  
0000000000010000 (16 in binary)
...
0000000000010001 (another word was used, so 16+1 = 17 in binary)
...
0000000000010000 (16 in binary)
...
0000000000001011 (11 in binary)

И вот что я попробовал: anyLines - это просто строковый массив, в котором содержится содержимое файла (если бы я сказал System.out.println (anyLines [i]), я бы распечатал содержимое файла).

ОБНОВЛЕНО!

    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 doesn't begin with &, then ignore it
if (!line.startsWith("@")) {
    continue;
}

// remove 
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'm using Commons Lang's StringUtils.leftPad(..) to create the zero padded string
   System.out.println(Integer.toBinaryString(binaryValue));

}

Теперь мне нужно только заменить символы (% 10,% firststring и т. Д.) Двоичным значением.

После выполнения этого кода, я получаю в качестве вывода:

1010 
10000 
10001
10000
1011
%10
...
%firststring 
...
%secondstring
...
%firststring
...
%11
...

Теперь мне просто нужно заменить% 10 на 1010,% firststring на 10000 и так далее, чтобы файл выглядел так:

0000000000001010 (10 in binary)
...  
0000000000010000 (16 in binary)
...
0000000000010001 (another word was used, so 16+1 = 17 in binary)
...
0000000000010000 (16 in binary)
...
0000000000001011 (11 in binary)

Есть ли у вас какие-либо предложения о том, как сделать эту работу?

Ответы на вопрос(1)

Ваш ответ на вопрос