Уважаемые старожилы.
public static void main(String[] args){
Pattern pat = Pattern.compile("[a-zA-Z]+[0-9]+|[0-9]+[a-zA-Z]+|[a-zA-Z]+[0-9]+[a-zA-Z]+");
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
try{
FileReader fileR= new FileReader(reader.readLine());
reader.close();
StringBuffer buffer = new StringBuffer();
while(fileR.ready()){
buffer.append((char) fileR.read());}
String[] s = buffer.toString().split(" ");
byte[] b = s[0].getBytes();
for(int i = 0; i< b.length; i++)
System.out.println((char) b[i]);
Matcher mat;
buffer.setLength(0);
for(int i = 0; i < s.length; i ++){
mat = pat.matcher(s[i]);
buffer.append(s[i] + " ");
if(mat.matches())
System.out.print(s[i] + " ");
столкнулся с проблемой. Это не код моего решения, а просто направление мысли, чтобы было понятно, что творю. Первый элемент из файла не выводится, хоть и есть цифра. Разбил по байтам и понял что спереди стоят байты -17 -69 -65. Что это? и как от них уйти. Вывод их в консоль такой
ᄏ
Я изначально думал, что это возврат каретки, но ничего подобного не прошло, как и не прошло ^ в регулярке. Сможете пояснить, буду очень благодарен.
ДМИТРИЙ
30 уровень
Не нашел инфы в нете.
Решен
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Алексей Java Developer Expert
3 декабря 2019, 18:47полезный
Это код символа Byte Order Mark (BOM) для файла в кодировке UTF-8.
Отрицательные значения только надо перевести в положительные по модулю 256 (239 187 191), и получите UTF-8 BOM. Да, бывают UTF-8 файлы без BOM. Искать надо было по "239 187 191", инфа в интернете есть.
По вопросу "Кто виноват" вроде объяснил.
По вопросу "Что делать" - скачать текстовый редактор Notepad++, и конвертнуть файл в формат UTF-8 без BOM.
+1
ДМИТРИЙ
3 декабря 2019, 19:02
Благодарю. Теперь хоть понял, что это такое))) Кстати о переводе в положительные байты, это впервые о таком слышу(учусь с нуля). Погуглю, ознакомлюсь и с этим.
0