Как найти EOF в строке в Java? - PullRequest
5 голосов
/ 29 сентября 2011

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

import java.io. * \ Npublic class A {\ n ........... EOF

И моя работа состоит в том, чтобы найти определенные регулярные выражения в этой строке (программе).

Теперь мой вопрос ..

void myFunc(String s)
{
 while(s.charAt(i) != EOF) /*needed replacement for EOF*/
 {
 // Actual Code
 }
}

В приведенном выше коде, как найти, достигается ли EOF в строке?

Ответы [ 3 ]

12 голосов
/ 29 сентября 2011

Маловероятно, что вам это нужно - вам, вероятно, нужно просто прочитать до конца строки, и поскольку это представление содержимого файла, ваш учитель назвал его EOF.

Однако ....

Есть персонаж по имени EOF.Это также называется control-Z, потому что именно так вы печатаете.Если вы хотите включить его в строку, вы должны напечатать его как \ u001a, например:

String iHaveAnEof = "file ends here\u001a";

Если вам это действительно нужно, ваш учитель, вероятно, старше меня, и явероятно, достаточно взрослый, чтобы быть твоим дедом; -)

4 голосов
/ 29 сентября 2011

В строке нет символа EOF. Вам просто нужно перебирать символы в строке :

for (int i = 0; i < s.length(); i++){
    char c = s.charAt(i);        
    //Process char
}
0 голосов
/ 06 февраля 2015

BufferedReader rd = новый BufferedReader (новый InputStreamReader (новый FileInputStream ("Input.txt"), "UTF-8"));

  char ch;
  int r;
  while(true)
  {
    r=rd.read();    //Reading a character in integer format
    if(r==-1)   //Checking for the End of File
      break;
    else
    {
      ch=(char)r;   //Converting to char format
  System.out.println(ch);
    }
  }
...