2012-06-19 1 views
3

Я пытаюсь найти и прочитать строку из текстового файла, используя «.equal» в java. Я знаю, что могу просто сделать это, используя вместо этого «.contain», но я просто хочу знать, есть ли способ найти и прочитать строку следующим образом:Как объявить «что-нибудь» с помощью java?

Например, у меня есть следующие данные в текстовом файле :

ID1 123 123 
ID2 125 136 

Теперь

String ID="ID1"; 
while ((ss = buffered_reader.readLine()) != null){ 
if (ss.equals(ID+[anything])){do something} } 

Почему я хочу это предотвратить получение результата для ввода только "ID". Итак, есть ли способ, как регулярное выражение или что-то, что может помочь?

Разъяснение:

Я хочу, чтобы найти точное совпадение для ID, например:

, если ввести ID1, то программа говорит: верно но неверно для ввода только ID

если Я использую .contain программа находит слово ID1 или ID2, и потому что они содержат «ID», тогда он всегда возвращает истинное значение.

теперь я хочу использовать .eqaual, чтобы найти точное совпадение с последующим ничего

+0

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

+0

Вы слышали о регулярных выражениях? Сейчас настало время ознакомиться с ними :-) –

+0

например, если что-то равно чему-либо, но через .eqaul() не по-другому? –

ответ

4

Попробуйте это:

String ID="ID1"; 
while ((ss = buffered_reader.readLine()) != null) { 
    if (ss.matches(ID+".*")){do something} } 
} 

expresion .* означает любую последовательность символов, даже пустую последовательность. Поэтому, если ID «ID1», то он будет соответствовать любому string, который начинается с ID1.

+0

Спасибо tibtof, он работал очень красиво и чисто. Я должен принять ваш ответ: D –

+0

Добро пожаловать! – tibtof

2

Попробуйте это регулярное выражение:

ID.+ 

Это будет соответствовать только если строка имеет «ID» подстрока плюс один символ в наименее.

2

Регулярное выражение, как:

(ID\d+)\s+(\d+)\s+(\d+) 

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

ID1 123 123 

группы один будет содержать ID1 группу Ьнр будет содержать 123 и 123

+0

Он не просил о такой вещи ... Но приятная экстраполяция. – m0skit0

0

Вы можете также проверить длиной линии, что-то вроде этого (меньше коды перемещается чем регулярного выражения):

while ((ss = buffered_reader.readLine()) != null) { 
    if (ss.length()>3) { 
     // Do your job 
    } 
}