Проверить является ли введенная строка электронным адресом
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

import java.util.*;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

 

import static java.lang.Math.*;

 

public class HelloWorld {

 

  public static void main(String[] args) {

        Scanner in=new Scanner(System.in);

        System.out.print("Email:");

    String parol=in.next();

        Pattern pattern = Pattern.compile("\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*\\.\\w{2,4}");

        Matcher matcher = pattern.matcher(parol);

        boolean matches = matcher.matches();

        if (!matches)

               System.out.print("Неверный email");

        else

               System.out.print("Верный email");

  }

}

ДЗ. Составить и отработать на компьютере

1. Написать регулярное выражение, определяющее является ли данная строчка датой в формате dd.mm.yyyy. Начиная с 2000 года до 2099 года.
–пример правильных выражений: 29.02.2000, 30.04.2003, 01.01.2003.
–пример неправильных выражений: 29/02/2001, 30-04-2003, 1/1/1899.

 

Pattern . compile ("(0[1-9]|[12][0-9]|3[01])\\.(0[1-9]|1[012])\\.((20)\\ d \\ d )");

 

( # Начало группы 1

0[1-9] # 01-09 или 1-9

| # Или

[12][0-9] # 10-19 или 20-29

| # Или

3[01] # 30 или 31

) # Конец группы 1

\\. # Дальше должна быть точка "."

( # Начало группы 2

0[1-9] # 01-09 или 1-9

| # Или

1[012] # 10,11 или 12

) # Конец группы 2

\\. # Дальше должна быть точка "."

( # Начало группы 2

(20)\\d\\d # Число от 2000 до 2099

) # Конец группы 3

 

\d Любая цифра (иначе, [0-9] )

  




Контрольная работа по теме «Строки»

 

1 Что будет выведено на экран, в результате работы следующей программы:

 

String input = "Hello Java! Hello JavaScript! JavaSE 8.";

Pattern pattern = Pattern.compile("Java(\\w*)");

Matcher matcher = pattern.matcher(input);

while(matcher.find())

System.out.println(matcher.group());

 

1 Что будет выведено на экран, в результате работы следующей программы:

 

String input = "Hello Java! Hello JavaScript! JavaSE 8.";

Pattern pattern = Pattern.compile("Java\\w");

Matcher matcher = pattern.matcher(input);

while(matcher.find())

System.out.println(matcher.group());

2 Задана строка. Найти произведение всех цифр, которые в неё входят.

 

Pattern pattern =Pattern.compile( "[0-9]" );

     Matcher matcher = pattern .matcher( " Мама купила 5 кг лука , 6 кг картошки , 3 кг слив " );

     int p =1;

     while ( matcher .find()) {

           p *=Integer.parseInt( matcher .group());

     }

      System. out .println( p );

 

2 Задана строка, содержащая математическую запись вида: 3+5=8. Сформировать из неё две строки. Первая должна содержать только знаки операций и отношения, вторая – цифры.

 

Pattern pattern =Pattern.compile( "[0-9]" );

     Matcher matcher = pattern .matcher( "8+5=3" );

     String numbers = new String(), operations = new String();

     while ( matcher .find()) {

           numbers += matcher .group();

     }

      System. out .println( numbers );

     pattern =Pattern.compile( "\\+|\\-|\\=|\\*|\\/" );

     matcher = pattern .matcher( "8+5=3" );

     while ( matcher .find()) {

                operations += matcher .group();

           }

            System. out .println( operations );

 

3 Дано предложение. Подсчитать, сколько раз в нём встречается буква «е».

 

3 Дано предложение. Определить число вхождений в него некоторого буквосочетания из двух букв.

 

String text = "Слова чаща, пища пишутся с буквой а, как и слово щавель" ;

int count =0;

int pos = text .indexOf( " ща " );

while ( pos !=-1) {

count ++;

pos = text .indexOf( " ща " , pos +2);

}

System . out . println ( count );


 

Контрольная работа по строкам (2 попытка)

1 вариант

1. Дано предложение. Определить количество букв «н», предшествующих запятым.

Scanner in = new Scanner (System. in );

System. out .print( " Введите строку :" );

String text = in .nextLine();

char [] a = text .toCharArray();

int count =0;

for ( int i =0; i < a . length ; i ++)

if ( a [ i ]== ',' && a [ i -1]== ' н ' )

count ++;

 System. out .print( count );

 

2. Задана строка. Создать на её основе вторую строку, где сначала будут располагаться буквы латинского алфавита, потом – цифры, а после них – знаки препинания.

3. Написать программу, которая заменяет в тексте все последние буквы всех слов на заглавные.

Scanner in = new Scanner (System. in );

System. out .print( " Введите строку :" );

String text = in .nextLine();

char [] a = text .toCharArray();

int n = a . length -1;

a [ n ] = Character.toUpperCase( a [ n ]);

for ( int i =0; i < a . length ; i ++)

if (( a [ i ]== ' ' || a [ i ]== ',' || a [ i ]== '.' ) && a [ i -1]!= ' ' )

a [ i -1]=Character.toUpperCase( a [ i -1]);


A .toString();

System. out .print( a );

2 вариант

1. Дано слово. Поменять местами его первую и последнюю буквы

 

String str1 = " мама " ;

char [] str = str1 .toCharArray();

char temp = str [0];

str [0]= str [ str1 .length()-1];

str [ str1 .length()-1]= str [0];

String str3 = new String( str );

System. out .println( str3 );

 

2. Задана строка. Сформировать из её три строки. Первая должна содержать только знаки операций отношения, вторая – скобки, третья – цифры.

3. Даны две строки, содержащие значения двух годов "2017" и "2018". Создать третью строку, содержащую в качестве значения сумму этих годов "4035"

String str1 = "2017" ;

String str2 = "2018" ;

int st =Integer.parseInt( str1 )+Integer.parseInt( str2 );

String str3 =Integer.toString( st );

System. out .println( str3 );


4.


Методы в Java

Если переменные и константы хранят некоторые значения, то методы содержат собой набор операторов, которые выполняют определенные действия.

Общее определение методов выглядит следующим образом:

 

[модификаторы] тип_возвращаемого_значения название_метода ([параметры]){

// тело метода

}

 

Модификаторы и параметры необязательны.

По умолчанию главный класс любой программы на Java содержит метод main, который служит точкой входа в программу:

 

public static void main(String[] args) {

System.out.println("привет мир!");

}

 

Ключевые слова public и static являются модификаторами. Далее идет тип возвращаемого значения. Ключевое слово void указывает на то, что метод ничего не возвращает.

Затем идут название метода - main и в скобках параметры метода - String[] args. И в фигурные скобки заключено тело метода - все действия, которые он выполняет.

Создадим еще пару процедур:

 

// определение первого метода

static void method1(){

System.out.println("Method1");

}

 

//определение третьего метода

void method2(){

System.out.println("Method2");

}

 

Условно методы, которые не возвращают никакого значения, называются процедурами.

Кроме void методы в Java могут возвращать конкретное значение. Такие методы, также условно называют функциями. Например:

int factorial(){

return 1;}

String hello(){

return "Hell to World";

}

 

В функции в качестве типа возвращаемого значения вместо void используется любой другой тип. В данном случае тип int и тип String. Функции также отличаются тем, что мы обязательно должны использовать оператор return, после которого ставится возвращаемое значение.

При этом возвращаемое значение всегда должно иметь тот же тип, что значится в определении функции. И если функция возвращает значение типа int, то после оператора return стоит целочисленное значение (как в данном случае число 1), которое неявно является объектом типа int.

 

Дата: 2018-11-18, просмотров: 483.