package trabalhos ;
import java.util.regex.Pattern ;
import javax.swing.JOptionPane ;
/**
*
* @author Paulo Neto
*/
public class TrabalhoLiguagem {
public static void main
( String [ ] args
) {
palavra
= JOptionPane .
showInputDialog ( "Digite uma palavra" ) ; if ( teste.validarPalavra ( palavra) ) {
JOptionPane .
showMessageDialog ( null ,
"Palavra Aceita!" ) ; } else {
JOptionPane .
showMessageDialog ( null ,
"Palavra Invalida!" ) ; }
System .
out .
println ( "Palavra: " + palavra
) ; System .
out .
println ( teste.
validarPalavra ( palavra
) ) ;
caminho
= JOptionPane .
showInputDialog ( "Digite um caminho par pesquisar a palvra dentro do Arquivo!" ) ; if ( teste.validarCaminho ( caminho) ) {
JOptionPane .
showMessageDialog ( null ,
"Caminho Aceito!" ) ; } else {
JOptionPane .
showMessageDialog ( null ,
"Caminho Invalido!" ) ; }
System .
out .
println ( "Arquivo: " + caminho
) ; System .
out .
println ( teste.
validarCaminho ( caminho
) ) ; }
}
class teste {
private static final Pattern p1 = Pattern.compile ( "^[A-Z0-9a-z]+$" ) ;
private static final Pattern p2
= Pattern.compile ( "^[a-zA-Z0-9]+(?:\\ /[a-zA-Z0-9]+)*(?:\\ .[a-zA-Z0-9]+)?$" ) ;
public static boolean validarPalavra
( String palavra
) { return p1.matcher ( palavra) .matches ( ) ;
}
public static boolean validarCaminho
( String caminho
) { return p2.matcher ( caminho) .matches ( ) ;
}
}
cGFja2FnZSB0cmFiYWxob3M7CgppbXBvcnQgamF2YS51dGlsLnJlZ2V4LlBhdHRlcm47CmltcG9ydCBqYXZheC5zd2luZy5KT3B0aW9uUGFuZTsKCi8qKgogKgogKiBAYXV0aG9yIFBhdWxvIE5ldG8KICovCnB1YmxpYyBjbGFzcyBUcmFiYWxob0xpZ3VhZ2VtIHsKCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CgogICAgICAgIFN0cmluZyBwYWxhdnJhOwogICAgICAgIFN0cmluZyBjYW1pbmhvOwoKICAgICAgICAgIHBhbGF2cmEgPSBKT3B0aW9uUGFuZS5zaG93SW5wdXREaWFsb2coIkRpZ2l0ZSB1bWEgcGFsYXZyYSIpOwogICAgICAgICBpZiAodGVzdGUudmFsaWRhclBhbGF2cmEocGFsYXZyYSkpIHsKICAgICAgICAgSk9wdGlvblBhbmUuc2hvd01lc3NhZ2VEaWFsb2cobnVsbCwgIlBhbGF2cmEgQWNlaXRhISIpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICBKT3B0aW9uUGFuZS5zaG93TWVzc2FnZURpYWxvZyhudWxsLCAiUGFsYXZyYSBJbnZhbGlkYSEiKTsKICAgICAgICAgfQogICAgICAgIAogICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlBhbGF2cmE6ICIgKyBwYWxhdnJhKTsKICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHRlc3RlLnZhbGlkYXJQYWxhdnJhKHBhbGF2cmEpKTsKICAgICAgICAKICAgICAgICBjYW1pbmhvID0gSk9wdGlvblBhbmUuc2hvd0lucHV0RGlhbG9nKCJEaWdpdGUgdW0gY2FtaW5obyBwYXIgcGVzcXVpc2FyIGEgcGFsdnJhIGRlbnRybyBkbyBBcnF1aXZvISIpOwogICAgICAgIGlmICh0ZXN0ZS52YWxpZGFyQ2FtaW5obyhjYW1pbmhvKSkgewogICAgICAgICAgICBKT3B0aW9uUGFuZS5zaG93TWVzc2FnZURpYWxvZyhudWxsLCAiQ2FtaW5obyBBY2VpdG8hIik7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgSk9wdGlvblBhbmUuc2hvd01lc3NhZ2VEaWFsb2cobnVsbCwgIkNhbWluaG8gSW52YWxpZG8hIik7CiAgICAgICAgfQoKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkFycXVpdm86ICIgKyBjYW1pbmhvKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4odGVzdGUudmFsaWRhckNhbWluaG8oY2FtaW5obykpOwogICAgfQp9CgpjbGFzcyB0ZXN0ZSB7CgogICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFBhdHRlcm4gcDEgPSBQYXR0ZXJuLmNvbXBpbGUoIl5bQS1aMC05YS16XSskIik7CgogICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFBhdHRlcm4gcDIKICAgICAgICAgICAgICAgID0gUGF0dGVybi5jb21waWxlKCJeW2EtekEtWjAtOV0rKD86XFwvW2EtekEtWjAtOV0rKSooPzpcXC5bYS16QS1aMC05XSspPyQiKTsKCiAgICAgICAgcHVibGljIHN0YXRpYyBib29sZWFuIHZhbGlkYXJQYWxhdnJhKFN0cmluZyBwYWxhdnJhKSB7CiAgICAgICAgICAgIHJldHVybiBwMS5tYXRjaGVyKHBhbGF2cmEpLm1hdGNoZXMoKTsKICAgICAgICB9CgogICAgICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiB2YWxpZGFyQ2FtaW5obyhTdHJpbmcgY2FtaW5obykgewogICAgICAgICAgICByZXR1cm4gcDIubWF0Y2hlcihjYW1pbmhvKS5tYXRjaGVzKCk7CiAgICAgICAgfQp9Cgo=