2015-04-23 2 views
0

Я работаю над проектом, который читает файл по строкам. В этих строках может быть или не быть двухзначное шестнадцатеричное число. Например, EC, 1F, A3, 34. Линия может включать слова, цифры с одной цифрой, букву или различные другие специальные символы, все они разделены пробелами. Этот номер всегда будет находиться в том же месте в строке , если присутствует. Если он присутствует, мне нужно будет сделать что-то особенное для данных на этой строке, чем сказать, если присутствует однозначное число. Я беру строку и помещаю ее в массив, поскольку она используется для чего-то еще в программе. Что касается дизайна захвата этого числа, я планирую использовать выражение регулярных выражений и метод соответствия, чтобы захватить его из исходной строки. Это будет храниться в структуре данных где-то еще, поскольку мне также придется добавить или вычесть это позже.Захват шестнадцатеричного числа или целого числа с использованием дизайна Regex

Будет ли наиболее эффективным способом захвата этого метода использовать метод matcher.find()? Или я должен просто взять его прямо с линии, так как я точно знаю, где он будет размещен? Я хотел бы включить совпадения на случай, если пользователь сделал ошибку и был отключен одним при вводе шестнадцатеричного числа и чтобы проверить, присутствует ли этот номер. Есть немного места, чтобы дать в этом входе с обеих сторон. Я знаю, что я мог бы просто захватить массив и использовать значение индекса, где находится шестнадцатеричное число, но мне любопытно, есть ли лучше дизайн программы для планирования небольших расхождений, таких как отсутствие свободного пространства и наличие уже встроенного в вашу программу или держать это просто и жестко?

Это, как я в настоящее время захвата шестнадцатеричного числа

wordSansNumber = wordToInsert.substring(0,5); 
hexaDecimalNumber = wordToInsert.substring(5,14); 
justHexaDecimalFinder = hexaDecimalFinder.matcher(hexaDecimalNumber); 

Если матч возвращает истину, она проходит через несколько операций.

+0

Если вы точно знаете, где он будет размещен, просто снимите его с линии. Затем проверьте, что вы схватили, если он не прошел проверку, а затем выбросил исключение. –

ответ

1

Я не думаю, что это хорошая идея, чтобы захватить входной сигнал от пользователя на основе положений. Например, пользователь может случайно добавить пробелы.

Я думаю, что было бы лучше обрезать линию, а затем, если число может быть только в начале строки, найдите первое место в строке и извлеките шестнадцатеричное значение между началом строки и первым пробелом , Тогда вы должны проверить его, конечно.

Смежные вопросы