Você está aqui: Cards de AutoCAD Civil 3D |
||
|
||
|
|
||
VB.NET ::: Dicas & Truques ::: Strings e Caracteres |
Como comparar strings em VB.NET usando o método Compare() da classe String do .NET FrameworkQuantidade de visualizações: 12863 vezes |
|
Este exemplo mostra como comparar strings em VB.NET usando o método Compare() da classe String. Lembre-se de que a versão do método que usamos neste exemplo diferencia maiúsculas de minúsculas. Veja o código completo:
Imports System
Module Program
Sub Main(args As String())
Dim palavra1, palavra2 As String
palavra1 = "Visual Basic"
palavra2 = "Visual Basic"
If String.Compare(palavra1, palavra2) = 0 Then
Console.WriteLine("As duas strings são iguais")
Else
Console.WriteLine("As duas strings são diferentes")
End If
Console.WriteLine(vbCrLf & "Pressione qualquer tecla para sair...")
' pausa o programa
Console.ReadKey()
End Sub
End Module
Ao executar este código VB.NET nós teremos o seguinte resultado: As duas strings são iguais |
Firebird ::: Dicas & Truques ::: Tipos de Dados |
Como usar os tipos CHAR e VARCHAR do FirebirdQuantidade de visualizações: 16467 vezes |
|
O Firebird fornece dois tipos de dados básicos para armazenar informação em texto ou caracteres: CHAR e VARCHAR (O tipo BLOB também permite armazenar caracteres por meio de seu sub-tipo text). CHAR e VARCHAR são tipos de dados que podem armazenar quaisquer informações do tipo texto. Números que não serão envolvidos em cálculos, tais como CEPs, números de ruas, etc, são geralmente armazenados em campos do tipo CHAR ou VARCHAR. O comprimento de um campo do tipo CHAR ou VARCHAR é informado entre parênteses, e pode ser um valor inteiro que vai de 1 até 32.767. Esta largura de caracteres é extremamente útil quando precisamos armazenar dados de tamanho fixo ou pré-definido, tais como códigos de CEPs para um determinado país. Comparado com a maioria dos outros bancos de dados, o Firebird armazena somente as informações significantes. Se um campo é definido como CHAR(100), mas contém apenas 10 caracteres, os bytes definidos adicionalmente não são usados. Isso acontece porque o Firebird armazena os tipos CHAR e VARCHAR de forma igual, e não preenche o espaço não usado com caracteres vazios. Tanto CHAR quanto VARCHAR são guardados na memória em sua forma declarada, mas, o registro é comprimido antes da armazenagem. Além disso, tenha em mente que os campos do tipo VARCHAR exigem mais espaço de armazenamento que os campos do tipo CHAR. Isso ocorre porque, ao armazenar um VARCHAR, o Firebird adiciona dois bytes que serão usados para guardar o real tamanho do campo (o tamanho declarado). Desta forma, um CHAR ocupará menos espaço de armazenamento. Contudo, quando fazemos um SELECT envolvendo campos do tipo VARCHAR, o Firebird removerá os dois bytes adicionados anteriomente e retornará o valor armazenado. Quando um SELECT é efetuado com campos do tipo CHAR, o Firebird retorna o valor e os espaços em branco. Em termos práticos podemos considerar esta regra: somente use CHAR se você for armazenar strings com poucos caracteres. A exceção a esta regra acontece quando estamos trabalhando com tabelas intermediárias exigidas para a exportação de dados para arquivos de tamanhos fixos. Neste caso os campos CHAR de tamanho fixo trarão uma enorme vantagem. Esta forma eficiente de armazenamento do Firebird pode trazer algumas confusão, principalmente quando estamos importando dados, uma vez que bases de dados Paradox e dBase guardam também os espaços em branco. Assim, depois de importar um arquivo dBase de 10Mb para o Firebird, o resultado será algo em torno de 3-6Mb, ainda que todos os dados tenham sido importados corretamente. Observe também que campos CHAR indexados não devem ter mais que 80 caracteres de comprimento (Firebird 2.5). Quando estamos criando campos do tipo CHAR, este tipo de dados pode ser definido como CHAR ou CHARACTER. Já o tipo VARCHAR pode ser definido como VARCHAR, CHARACTER VARYING ou CHAR VARYING. Veja um comando DDL CREATE TABLE usado para criar uma tabela do Firebird contendo campos do tipo CHAR e VARCHAR: CREATE TABLE PESSOAS( ID INTEGER NOT NULL, NOME VARCHAR(40) NOT NULL, SEXO CHAR(1) NOT NULL ); Aqui o campo ID é do tipo INTEGER, NOME é do tipo VARCHAR(40) e SEXO é do tipo CHAR(1). Veja agora um comando DML INSERT INTO que mostra como inserir um novo registro nesta tabela: INSERT INTO PESSOAS VALUES(12, 'OSMAR J. SILVA', 'M'); É importante notar que, se um campo for do tipo CHAR(1) e, na query INSERT ou UPDATE nós fornecermos dois ou mais caracteres, o Firebird se recusará a gravar ou atualizar o registro, exibindo a seguinte mensagem de erro: Arithmetic overflow or division by zero has occurred. arithmetic exception, numeric overflow, or string truncation. string right truncation. |
Java ::: Fundamentos da Linguagem ::: Laços de Repetição |
Como usar o laço while da linguagem Java - Java para iniciantesQuantidade de visualizações: 17669 vezes |
O laço while é usado quando queremos executar um bloco de códigos continuamente até uma condição seja verdadeira. Veja sua estrutura:
while(condição){
// bloco de códigos
}
Diferente de C e C++, a condição a ser testada no while do Java deve sempre retornar um valor boolean. E, muito cuidado deve ser tomado para não produzirmos laços infinitos, ou seja, a condição sendo testada nunca retornará um valor false. Veja um trecho de código no qual exibimos os números pares de 0 a 20:
public class Estudos{
public static void main(String args[]){
int numero = 0;
while(numero <= 20){
System.out.println(numero);
numero++;
}
System.exit(0);
}
}
Veja outro exemplo no qual o laço while é executado até que o usuário digite "fim":
import java.util.*;
public class Estudos{
public static void main(String args[]){
Scanner in = new Scanner(System.in);
String palavra = "";
while(!palavra.equals("fim")){
System.out.print("Digite uma palavra: ");
palavra = in.nextLine();
System.out.println("Você escreveu: " + palavra);
}
System.exit(0);
}
}
Para finalizar, lembre-se de que o laço while é executado somente enquanto a condição testada for verdadeira. Isso quer dizer que, se na primeira tentativa de execução, a condição já for falsa, o laço nunca será executado. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercício Resolvido de Java - Como rotacionar os elementos de um vetor de inteiros n vezes para a direita - Solução usando força-brutaQuantidade de visualizações: 768 vezes |
|
Pergunta/Tarefa: Dado o vetor:
// vamos criar um vetor de inteiros
int valores[] = {1, 6, 9, 3, 7, 8, 5, 2};
Sua saída deverá ser parecida com: Array na ordem original: 1 6 9 3 7 8 5 2 Rotação do vetor depois do passo 1: 2 1 6 9 3 7 8 5 Rotação do vetor depois do passo 2: 5 2 1 6 9 3 7 8 Rotação do vetor depois do passo 3: 8 5 2 1 6 9 3 7 Array depois de rotacionar 3 vezes: 8 5 2 1 6 9 3 7 Veja a resolução comentada deste exercício em Java:
package estudos;
public class Estudos {
public static void main(String[] args) {
// vamos criar um vetor de inteiros
int valores[] = {1, 6, 9, 3, 7, 8, 5, 2};
// mostramos o array na ordem original
System.out.println("Array na ordem original:");
exibirVetor(valores);
// vamos rotacionar o array 3 casas para a direita
valores = rotacionarArray(valores, 3);
// e mostramos o resultado
System.out.println("Array depois de rotacionar 3 vezes:");
exibirVetor(valores);
}
// método usado para exibir o array
public static void exibirVetor(int []vetor){
// percorremos cada elemento do vetor
for (int i = 0; i < vetor.length; i++) {
System.out.print(vetor[i] + " ");
}
System.out.println("\n");
}
// método que recebe um vetor de inteiros e o rotaciona um
// determinado número de vezes
public static int[] rotacionarArray(int[] vetor, int n) {
// um laço externo que repete a mesma quantidade de n
for (int i = 0; i < n; i++) {
// começamos no último elemento e regredimos até
// o segundo elemento do vetor
for (int j = vetor.length - 1; j > 0; j--) {
// avançamos um elemento de cada vez para
// a direita
int temp = vetor[j];
vetor[j] = vetor[j - 1];
vetor[j - 1] = temp;
}
// mostramos o progresso
System.out.println("Rotação do vetor depois do passo " + (i + 1) + ":");
exibirVetor(vetor);
}
return vetor;
}
}
A solução que apresentamos aqui usa a força-bruta, isto é, uma solução não otimizada e pouco recomendada para arrays com um número exagerado de elementos. Por ser força-bruta, o laço interno percorre todos os elementos do vetor, trocando-os de lugares. Em outras dicas do site nós colocamos versões melhoradas deste código. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de Java - Como testar se um array possui valores repetidos em JavaQuantidade de visualizações: 2169 vezes |
|
Pergunta/Tarefa: Escreva um programa Java que declara, constrói um vetor de 10 posições e pede ao usuário para informar os valores de seus elementos. Em seguida, varra o vetor e informe a existência ou não de valores repetidos. Sua saída deverá ser parecida com: Informe o valor para o índice 0: 3 Informe o valor para o índice 1: 6 Informe o valor para o índice 2: 8 Informe o valor para o índice 3: 10 Informe o valor para o índice 4: 2 Informe o valor para o índice 5: 4 Informe o valor para o índice 6: 6 Informe o valor para o índice 7: 10 Informe o valor para o índice 8: 3 Informe o valor para o índice 9: 30 Há valores repetidos no vetor Veja a resolução comentada deste exercício usando Java:
package estudos;
import java.util.Scanner;
public class Estudos {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
// vamos declarar e construir um vetor de 10 elementos
int valores[] = new int[10];
// vamos pedir que o usuário informe os valores
for(int i = 0; i < valores.length; i++){
System.out.print("Informe o valor para o índice " + i + ": ");
valores[i] = Integer.parseInt(entrada.nextLine());
}
// agora vamos verificar se o vetor possui valores repetidos
boolean repetidos = false;
// percorremos todos os elementos do vetor
for(int i = 0; i < valores.length; i++){
// para cada elemento em i nos verificamos os que estão nos indices seguintes
for(int j = i + 1; j < valores.length; j++){
// encontramos algum repetido?
if(valores[j] == valores[i]){
repetidos = true;
break; // saímos do laço
}
}
}
if(repetidos){
System.out.println("Há valores repetidos no vetor");
}
else{
System.out.println("Nao há valores repetidos no vetor");
}
System.out.println("\n");
}
}
|
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






