import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
class Main
{
public static void main(String[] args) {
String str = "5+7*22/42*5/2";
String[] words = str.split("/",2);
Pattern p ,p1;
Matcher m ,m1;
p = Pattern.compile("$\\d*");
m = p.matcher(words[0]);
p1 = Pattern.compile("^\\d*");
m1 = p1.matcher(words[1]);
while (m.find() && m1.find()){
String y1= m.group();
String y2 = m1.group();
System.out.print( y1 + y2 );
}
}
}
Andry KIT
5 уровень
привет почему код выводит 42 хотя должен 2242
Обсуждается
Комментарии (10)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Галкин Юрий
26 августа 2021, 18:56
потому что вот тут неверно переменная использована
0
Andry KIT
26 августа 2021, 18:58
а в чем ошибка?
0
Andry KIT
26 августа 2021, 18:58
можете пожалуйста чуть детальней обьяснить
0
Галкин Юрий
26 августа 2021, 18:59
сравните мою запись и вашу
0
Галкин Юрий
26 августа 2021, 19:00
0
Andry KIT
26 августа 2021, 19:03
все понял .я подумал что у меня ошибка в самом синтаксисе . неправильно фунцию написал
большое спасибо
0
Галкин Юрий
26 августа 2021, 19:03
Вы шаблон p1 вовсе не использовали
0
Andry KIT
26 августа 2021, 19:04
я все исправил но почему код висилает только 42 . хотя должен 2242
0
Галкин Юрий
26 августа 2021, 19:04
При ошибке в синтакчисе, у вас возникали бы ошибки: компиляции или работы. Но программа завершается без ошибок -- значит нарушена логика: думаете о программе одно, а она делает другое
0
Галкин Юрий
26 августа 2021, 19:09
Полагаю ошибку в шаблоне. Вот тут, наверное можно потестировать. Только имейте ввиду, что там косые черты налево немного иначе интерпретируются. На 1 меньше нужно.
0