Você está aqui: Java ::: Pacote java.lang ::: String |
Como quebrar uma string Java em suas partes usando o método split() da classe StringQuantidade de visualizações: 3737 vezes |
O método split() da classe String é usado quando queremos quebrar uma string em suas partes e obter, como retorno, um vetor (matriz ou array) de objetos da classe String. Veja sua assinatura:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- public String[] split(String regex) Veja que o argumento regex é uma expressão regular que será usada para separar as partes da string. Veja um trecho de código no qual separamos todas as palavras de uma frase usando o caractere de espaço como delimitador: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package estudos; public class Estudos{ public static void main(String[] args) { String frase = "Gosto muito de programar em Java e PHP"; // vamos obter as partes da string usando o espaço como delimitador String partes[] = frase.split("\\s+"); // vamos percorrer as partes obtidas for(int i = 0; i < partes.length; i++){ System.out.println(partes[i]); } } } Ao executarmos este código nós teremos o seguinte resultado: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- Gosto muito de programar em Java e PHP Tenha cuidado. Se uma expressão regular inválida for fornecida para o método split(), uma exceção do tipo PatternSyntaxException será atirada. Há uma sobrecarga do método split() com a seguinte assinatura: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- public String[] split(String regex, int limit) Esta sobrecarga nos permite definir a quantidade de vezes que o padrão da expressão regular será aplicado e afeta a quantidade de partes da string que serão retornados. Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package estudos; public class Estudos{ public static void main(String[] args) { String frase = "Gosto muito de programar em Java e PHP"; // vamos obter as partes da string usando o espaço como delimitador String partes[] = frase.split("\\s+", 3); // vamos percorrer as partes obtidas for(int i = 0; i < partes.length; i++){ System.out.println(partes[i]); } } } Ao executarmos este código o resultado será: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- Gosto muito de programar em Java e PHP |
Link para compartilhar na Internet ou com seus amigos: |
Java ::: Dicas & Truques ::: Programação Orientada a Objetos |
Como usar o modificador final em classes, variáveis e métodos Java - Programação Orientada a Objetos em JavaQuantidade de visualizações: 13387 vezes |
O modificador final pode ser usado com classes, variáveis e métodos. É claro que o significado varia dependendo do uso. Por exemplo, ao marcarmos uma variável com o modificador final, estamos na verdade criando uma constante, ou seja, uma variável cujo conteúdo não pode ser alterado durante a execução do programa. Veja:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- public class Estudos{ static final int VALOR = 45; public static void main(String args[]){ // vamos tentar alterar o valor da // constante VALOR = 10; } } Ao tentarmos compilar este programa teremos a seguinte mensagem de erro: Estudos.java:7: cannot assign a value to final variable VALOR VALOR = 10; ^ 1 error Tenha em mente, porém, que quando uma variável marcada como final é uma referência a um objeto, é a referência que não poderá ser alterada. As propriedades do objeto para a qual ela aponta poderão sofrer alterações, exceto se estes também estiverem marcados como final. Quando aplicado a classes, o modificador final garante que a classe não poderá ser extendida, ou seja, não é possível criar uma classe derivada a partir de uma classe marcada como final. Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- // superclasse final class Pessoa{ public String nome; } // subclasse class Aluno extends Pessoa{ public String matricula; } public class Estudos{ public static void main(String args[]){ // Cria um objeto da classe Aluno Aluno a = new Aluno(); } } Ao tentarmos compilar este código teremos a seguinte mensagem de erro: Estudos.java:7: cannot inherit from final Pessoa class Aluno extends Pessoa{ ^ 1 error Um método marcado como final não pode ser sobrescrito. Veja um exemplo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- // superclasse class Pessoa{ protected String nome; public final String getNome(){ return this.nome; } } // subclasse class Aluno extends Pessoa{ // estamos sobrescrevendo o método // herdado da superclasse public final String getNome(){ return "Aluno: " + this.nome; } } public class Estudos{ public static void main(String args[]){ // Cria um objeto da classe Aluno Aluno a = new Aluno(); } } Ao tentarmos compilar este código teremos a seguinte mensagem de erro: Estudos.java:14: getNome() in Aluno cannot override getNome() in Pessoa; overriden method is final public final String getNome(){ ^ 1 error Resumindo: variáveis marcadas com final não poder sofrer alterações. Classes marcadas como final não podem ter classes derivadas. Métodos marcados como final não podem ser sobrescritos. |
Java ::: Dicas & Truques ::: Ordenação e Pesquisa (Busca) |
Como usar a pesquisa ou busca linear ou sequencial nos elementos de um vetor em JavaQuantidade de visualizações: 4633 vezes |
A busca linear ou sequencial, muitas vezes chamada de pesquisa linear ou sequencial, é geralmente implementada por meio de um algorítmo que varre os elementos de um coleção sequencial, começando do primeiro elemento e indo até o último. Esta busca não é tão usada quando a pesquisa binária ou hashing, por ser considerada muito lenta quando aplicado a um conjunto de dados muito grande. A busca linear ou sequencial em um vetor Java pode ser descrito pelos seguintes passos: 1) Efetua a varredura dos elementos do vetor. 2) Compara o valor do elemento atual do vetor com o valor sendo pesquisado. 3) Se o valor for encontrado, efetue o procedimento desejado com o elemento do vetor. 4) Se a varredura alcançar o último elemento do vetor e o valor pesquisado não for encontrado, exiba uma mensagem de erro ou algum outro procedimento para alertar o usuário do programa. Veja um exemplo no qual declaramos e preenchemos um vetor de int com 5 elementos e em seguida usamos um método pesquisaLinear para verificar se um determinado valor existe no vetor: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package arquivodecodigos; public class Estudos{ public static void main(String a[]){ // vamos criar um vetor de 5 elementos int int[] valores = {32, 7, 21, 4, 90}; // vamos pesquisar o valor 21 int valor = 21; // vamos verifiar se o valor está no vetor int indice = pesquisaLinear(valores, valor); if(indice > -1){ System.out.println("O valor foi encontrado no índice: " + indice); } else{ System.out.println("O valor não foi encontrado."); } } // método que permite efetuar a busca linear em um vetor public static int pesquisaLinear(int[] vetor, int valor){ // percorre os elementos do vetor for(int i = 0; i < vetor.length; i++){ // o valor foi encontrado? if(vetor[i] == valor){ return i; } } // não foi encontrado? vamos retornar -1 return -1; } } Ao executarmos este código nós teremos o seguinte resultado: O valor foi encontrado no índice: 2 Veja o mesmo código sem usar um método adicional, ou seja, a busca linear é feito dentro do método main() da classe Java: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package arquivodecodigos; public class Estudos{ public static void main(String a[]){ // vamos criar um vetor de 5 elementos int int[] valores = {32, 7, 21, 4, 90}; // vamos pesquisar o valor 21 int valor = 21; // vamos verifiar se o valor está no vetor int indice = -1; // não foi encontrado // percorre os elementos do vetor for(int i = 0; i < valores.length; i++){ // o valor foi encontrado? if(valores[i] == valor){ indice = i; break; } } if(indice > -1){ System.out.println("O valor foi encontrado no índice: " + indice); } else{ System.out.println("O valor não foi encontrado."); } } } |
Java ::: Java + MySQL ::: Metadados da Base de Dados (Database Metadata) |
Java MySQL - Como obter os tipos de dados suportados pelo MySQL e seus correspondentes JDBC usando o método getTypeInfo() da interface DatabaseMetaDataQuantidade de visualizações: 5986 vezes |
Em algumas situações precisamos obter os tipos de dados suportados pelo MySQL e mapeá-los para seus correspondentes JDBC. Esta não é uma tarefa fácil, mas que, com uma pequena ajuda dos recursos de reflexão do Java, pode ser realizada depois de algumas xícaras de café. O primeiro passo é obter os tipos de dados suportados pelo MySQL com uma chamada ao método getTypeInfo() da interface DatabaseMetaData. Os campos do ResultSet que nos interessam são TYPE_NAME e DATA_TYPE. TYPE_NAME traz o nome do tipo de dados no MySQL enquanto DATA_TYPE traz o tipo JDBC correspondente como um inteiro. Assim, o que temos que fazer é usar reflexão para obter todos os campos da classe java.sql.Types e efetuar um mapeamento entre os tipos. Veja o código completo para o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package estudosbancodados; import java.lang.reflect.Field; import java.sql.*; import java.util.HashMap; import java.util.Map; public class EstudosBancoDados{ static Map mapa; // usado para mapear os tipos JDBC public static void main(String[] args) { // strings de conexão String databaseURL = "jdbc:mysql://localhost/estudos"; String usuario = "root"; String senha = "osmar1234"; String driverName = "com.mysql.jdbc.Driver"; try { Class.forName(driverName).newInstance(); Connection conn = DriverManager.getConnection(databaseURL, usuario, senha); // vamos obter um objeto da classe com.mysql.jdbc.DatabaseMetaData DatabaseMetaData dbmd = conn.getMetaData(); // vamos obter os tipos de dados suportados por esta versão do MySQL // e seus correspondentes JDBC ResultSet tiposDados = dbmd.getTypeInfo(); while(tiposDados.next()){ System.out.println("MySQL: " + tiposDados.getString("TYPE_NAME") + " - JDBC: " + getJdbcTypeName(Integer.parseInt(tiposDados.getString("DATA_TYPE")))); } // vamos fechar o ResultSet tiposDados.close(); } catch (SQLException ex) { System.out.println("SQLException: " + ex.getMessage()); System.out.println("SQLState: " + ex.getSQLState()); System.out.println("VendorError: " + ex.getErrorCode()); } catch (Exception e) { System.out.println("Problemas ao tentar conectar com o banco de dados: " + e); } } // Este método retorna o nome de um tipo JDBC // O retorno é null se o tipo JDBC não puder ser reconhecido public static String getJdbcTypeName(int jdbcType){ // vamos usar reflection para mapear valores inteiros a seus nomes if(mapa == null) { mapa = new HashMap(); // vamos obter todos os campos da classe java.sql.Types Field[] campos = java.sql.Types.class.getFields(); // vamos percorrer os campos for(int i = 0; i < campos.length; i++){ try{ // vamos obter o nome do campo String nome = campos[i].getName(); // vamos obter o valor do campo Integer valor = (Integer)campos[i].get(null); // vamos adicionar ao mapa mapa.put(valor, nome); } catch(IllegalAccessException e){ System.out.println("Ops: " + e.getMessage()); } } } // vamos retornar o nome do tipo JDBC return (String)mapa.get(new Integer(jdbcType)); } } O resultado da execução deste código foi: MySQL: BIT - JDBC: BIT MySQL: BOOL - JDBC: BIT MySQL: TINYINT - JDBC: TINYINT MySQL: TINYINT UNSIGNED - JDBC: TINYINT MySQL: BIGINT - JDBC: BIGINT MySQL: BIGINT UNSIGNED - JDBC: BIGINT MySQL: LONG VARBINARY - JDBC: LONGVARBINARY MySQL: MEDIUMBLOB - JDBC: LONGVARBINARY MySQL: LONGBLOB - JDBC: LONGVARBINARY MySQL: BLOB - JDBC: LONGVARBINARY MySQL: TINYBLOB - JDBC: LONGVARBINARY MySQL: VARBINARY - JDBC: VARBINARY MySQL: BINARY - JDBC: BINARY MySQL: LONG VARCHAR - JDBC: LONGVARCHAR MySQL: MEDIUMTEXT - JDBC: LONGVARCHAR MySQL: LONGTEXT - JDBC: LONGVARCHAR MySQL: TEXT - JDBC: LONGVARCHAR MySQL: TINYTEXT - JDBC: LONGVARCHAR MySQL: CHAR - JDBC: CHAR MySQL: NUMERIC - JDBC: NUMERIC MySQL: DECIMAL - JDBC: DECIMAL MySQL: INTEGER - JDBC: INTEGER MySQL: INTEGER UNSIGNED - JDBC: INTEGER MySQL: INT - JDBC: INTEGER MySQL: INT UNSIGNED - JDBC: INTEGER MySQL: MEDIUMINT - JDBC: INTEGER MySQL: MEDIUMINT UNSIGNED - JDBC: INTEGER MySQL: SMALLINT - JDBC: SMALLINT MySQL: SMALLINT UNSIGNED - JDBC: SMALLINT MySQL: FLOAT - JDBC: REAL MySQL: DOUBLE - JDBC: DOUBLE MySQL: DOUBLE PRECISION - JDBC: DOUBLE MySQL: REAL - JDBC: DOUBLE MySQL: VARCHAR - JDBC: VARCHAR MySQL: ENUM - JDBC: VARCHAR MySQL: SET - JDBC: VARCHAR MySQL: DATE - JDBC: DATE MySQL: TIME - JDBC: TIME MySQL: DATETIME - JDBC: TIMESTAMP MySQL: TIMESTAMP - JDBC: TIMESTAMP |
Vamos testar seus conhecimentos em Python |
Qual o resultado da execução do seguinte código Python?frase = "Gosto Muito de Python" frase = frase.swapcase() print(frase) A) gOSTO mUITO DE pYTHON B) Gosto muito de python C) Gosto Muito De Python D) PYTHON DE MUITO GOSTO E) gosto MUITO de PYTHON Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica |
Velocidade de entrada e saída de um fluido O tanque tem uma entrada e uma saída de água. Determine a altura H do tanque em função da área A, velocidade de entrada V1 em um bocal com diâmetro d1 e velocidade de saída V2 em um bocal com diâmetro d2, após um intervalo de tempo t, sendo que o tanque se encontrava vazio. Determine também o tempo de enchimento do tanque conforme os dados: H = 10m; A = 2,5m2; V1 = 0,7m/s; d1 = 20cm; V2 = 3m/s; d2 = 15 cm. A) H = (V2d22 - V1d12)tπ/4A 0,08 segundos. B) H = (V2 - V1)t/A 10,87 segundos. C) H = (V2d22 - V1d12)tπ/4A 806 segundos. D) H = (V2d22 - V1d12)tπ/A 201 segundos. E) H = (V2d22 - V1d12)tπ/2A 403 segundos. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em JavaScript |
Analise o seguinte trecho de código JavaScriptvar valores = new Array(2, 4); Este código A) cria uma matriz chamada valores com 2 linhas e 4 colunas. B) cria um array valores e atribui os valores 2 e 4 para valores[1] e valores[2]. C) cria um array valores e atribui os valores 2 e 4 para valores[0] e valores[1]. D) cria um array de três elementos com os índices variando de 2 até 4. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em |
Dimensionamento de pilares intermediários Pilares são classificados conforme suas solicitações iniciais e sua esbeltez, e esses fatores são considerados na etapa de dimensionamento e detalhamento. O índice de esbeltez dos pilares é uma medida mecânica que permite determinar a facilidade de um determinado pilar em se encurvar. Você é um engenheiro civil que foi convidado para dar uma palestra sobre projeto estrutural de pilares de concreto armado. Na sessão das perguntas, um participante apontou três dúvidas: I. No pilar intermediário, devido à continuidade de vigas e lajes sobre o pilar, os momentos fletores de 1ª ordem são nulos apenas na direção x. II. Se o pilar for quadrado, deve existir pelo menos uma barra em cada vértice. III. O índice de esbeltez não depende do formato da área da seção transversal do pilar. É correto o que se afirma em: A) I, apenas. B) II, apenas. C) III, apenas. D) I e II, apenas. E) II e III, apenas. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Ética e Legislação Profissional |
A responsabilidade moral Na relação moral e ética, pode-se perceber que, enquanto as inquietações com a esfera conceitual dos valores regentes do comportamento humano estão localizadas no âmbito da ética, as questões práticas desse campo pertencem à esfera da moral, que governa a alma de cada indivíduo. Portanto, diferenciar moral e ética significa dizer que: A) moral é a aplicação da ética. B) moral é a prática da ética em nossa sociedade. C) não podemos diferenciar, pois são idênticas. D) moral é o conjunto de valores, e ética é a reflexão dos mesmos. E) moral e ética são antagônicas. Verificar Resposta Estudar Cards Todas as Questões |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
GNU Octave - GNU Octave para Álgebra Linear - Como calcular o determinante de uma matriz usando a função det() do GNU Octave |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |