Aprenda C#

  • Página Inicial
  • Contato!
  • Tudo sobre C# Parte 1!
  • Tudo sobre C# Parte 2!
  • Tudo sobre C# Parte 3!
  • Tudo sobre C# Parte 4!
  • Tudo sobre C# Parte 5!
  • Tudo sobre C# Parte 6!
  • Tudo sobre C# Parte 7!
  • Tudo sobre C# Parte 8!
  • Tudo sobre C# Parte 9!
  • Tudo sobre C# Parte 10!
  • Tudo sobre C# Parte 2

    Manipulando Texto

    Temos outras funções para trabalhar com strings, como a Replace (que substitui algo na string), e a Concat da classe String, que concatena algo. Veja o uso delas:

    
    string frase = "Isso é uma String";
                
    Console.WriteLine(frase.Replace("String", "Frase")); // Substitui algo
                
    Console.WriteLine(String.Concat(frase, " e ela foi concatenada!")); // Concatena com mais algo
    
    

    Para inverter strings, usamos o método Reverse da classe Array, mas antes temos que converter a string para array de char, assim:

    
    string frase = "Isso é uma String";
    char[] novo = frase.ToCharArray(); // Converte string pra array de char
                
    Array.Reverse(novo); // Inverte
                
    Console.WriteLine(new String(novo)); // Converte novamente para string
    
    

    Para remover espaços desnecessário de strings, basta usar o Trim, assim:

    
    string texto = "        Exemplo de String!          ";
    
    Console.WriteLine(texto.Trim());
    
    

    Para transformar todas as letras em maiúsculas e minúsculas, use os métodos ToUpper() e ToLower() do objeto, respectivamente:

    
    string frase = "Isso é uma String";
                
    Console.WriteLine(frase.ToUpper()); // Converte pra maiúscula
    
    Console.WriteLine(frase.ToLower()); // Converte pra minúscula
    
    

    Para comparar strings, ao invés do ==, use o método Equals(), assim:

    
    string texto1 = "Microsoft";
    string texto2 = new string("Microsoft".ToCharArray());
    
    Console.WriteLine(texto1.Equals(texto2));
    
    

    Para encontrar se uma palavra existe na string, faça assim:

    
    string frase = "Isso é uma String";
    
    int posicao = frase.IndexOf("String");
    
    if(posicao != -1) {
        Console.WriteLine("Palavra encontrada.");
    }
    else {
        Console.WriteLine("Palavra não encontrada.");
    }
    
    

    Para ver se uma string está vazia, use o método IsNullOrEmpty() do objeto, assim:

    
    string nome = "";
    
    Console.WriteLine("Nome está vazio ou nulo? " + string.IsNullOrEmpty(nome));
    
    

    Para ver a quantidade de caracteres de uma string, use o atributo Length do objeto, assim:

    
    string frase = "Exemplo de String";
                
    Console.WriteLine("Quantidade de caracteres: " + frase.Length);
    
    

    Para dividir uma string ao encontrar um delimitador, podemos fazer assim:

    
    string frase = "Exemplo de Frase";
    string[] dividido = frase.Split(' '); // Pode ser qualquer caractere.
    
    Console.WriteLine(dividido[0]);
    
    

    Operadores de Atribuição, Incremento e Decremento

    Os operadores de atribuição são usados para atribuir um valor à uma variável. O operador é um =, mas temos também operadores de atribuição com operações aritméticas, como o += (que é um acumulador, que soma valores à variável), da mesma forma age os operadores-=, *= e /=, que fazem a atribuição com a operação.

    Veja um exemplo abaixo:

    
    using System;
    
    namespace OperadoresAtribuicaoIncrementoEDecremento {
        class Program {
            static void Main(string[] args) {
                int var1;
                var1 = 50;
    
                Console.WriteLine("Atribuição: {0}", var1);
    
                var1 += 20; // Seria o mesmo que var1 = var1 + 20
    
                Console.WriteLine("Acumulando: {0}", var1);
    
                var1 *= 2; // Seria o mesmo que var1 = var1 * 2
    
                Console.WriteLine("Multiplicando: {0}", var1);
                Console.ReadLine();
            }
        }
    }
    
    

    PS: Note que usamos uma exibição diferente no WriteLine(), como se fosse um print formatado.

    Para formatar valores float, faça assim, colocando a quantidade de casas com zeros:

    
    float real = 12345.6789f;
    
    Console.WriteLine("{0:0.00}", real);
    
    

    Podemos também usar isso no método String.Format(), que pode ser usado em Windows Forms, por exemplo.

    Os operadores de incremento e decremento são usados para aumentar e diminuir valores de um em um, e podem ser usados o pré e o pós, dependendo da necessidade.

    Veja um exemplo abaixo:

    
    using System;
    
    namespace OperadoresAtribuicaoIncrementoEDecremento {
        class Program {
            static void Main(string[] args) {
                int contador;
                contador = 50;
    
                Console.WriteLine(contador); // Executa normal
                Console.WriteLine(contador++); // Executa e incrementa depois
                Console.WriteLine(contador); // Executa já incrementado.
    
                Console.ReadLine();
            }
        }
    }
    
    

    No caso acima, seria mais correto fazer o pré-decremento, assim:

    
    Console.WriteLine(contador); // Executa normal
    Console.WriteLine(++contador); // Incrementa e executa após isso
    Console.WriteLine(contador); // Executa já incrementado.
    
    

    Da mesma forma acima, o decremento é usado.

    Operadores Relacionais e Lógicos

    Um operador booleano é um operador que realiza um cálculo cujo resultado pode ser true ou false. Em C# há vários operadores booleanos, que podem ser classificados em dois tipos distintos, operadores relacionais e de igualdade e e operadores condicionais lógicos

    Esses são os operadores relacionais e de igualdade:

    Operador Aritmético Significado
    == Igualdade.
    != Diferente.
    > Maior.
    < Menor.
    >= Maior ou Igual.
    <= Menor ou Igual.

    Em alguns casos, o igual não compara dois tipos de conteúdos, como por exemplo, objetos, sendo necessário usar o método Equals() desses mesmos objetos.

    PS: Podemos também colocar atribuição com algum valor, como por exemplo num += 2 ou num -= 3, que faça a atribuição e a operação juntos no mesmo comando. Concatenação com atribuição também pode ser colocada com o +=.

    Os operadores lógicos permitem combinar expressões ou valores booleanos e retornar um resultado lógico:

    Esse são os operadores lógicos usados em C#:

    Operador Operação Significado
    && AND E
    || OR Ou
    ! NOT Não
    ^ XOR Ou Exclusivo

    Veja um exemplo abaixo do uso de NOT:

    
    using System;
    
    namespace OperadoresLogicosERelacionais {
        class Program {
            static void Main(string[] args) {
                bool valor;
                valor = true;
                valor = !valor; // Inversão
    
                Console.WriteLine(valor.ToString()); // Retorna false
    
                Console.ReadLine();
            }
        }
    }
    
    

    Veja um exemplo de uso de AND:

    
    using System;
    
    namespace OperadoresLogicosERelacionais {
        class Program {
            static void Main(string[] args) {
                int idade;
                bool valida;
    
                Console.Write("Digite sua idade: ");
                idade = int.Parse(Console.ReadLine());
    
                valida = (idade > 0) && (idade <= 120);
    
                Console.WriteLine(valida.ToString());
    
                Console.ReadLine();
            }
        }
    }
    
    

    Veja um exemplo do uso de OR:

    
    using System;
    
    namespace OperadoresLogicosERelacionais {
        class Program {
            static void Main(string[] args) {
                int temperatura;
                bool invalida;
    
                Console.Write("Digite a temperatura em graus Celsius para ver se a água está nos estados sólido ou gasoso: ");
                temperatura = int.Parse(Console.ReadLine());
    
                invalida = (temperatura < 0) || (temperatura > 100);
    
                Console.WriteLine(invalida.ToString());
    
                Console.ReadLine();
            }
        }
    }
    
    

    PS: Note que nos dois métodos acima, usamos o método Console.ReadLine() para pegar dados de entrada do teclado.

    Também temos o operador ternário em C#:

    
    using System;
    
    namespace OperadoresLogicosERelacionais {
        class Program {
            static void Main(string[] args) {
                Console.Write("Digite sua idade: ");
                int idade = int.Parse(Console.ReadLine());
                string maior = (idade >= 18) ? "É de Maior!" : "É de Menor!";
    
                Console.WriteLine(maior);
    
                Console.ReadLine();
            }
        }
    }
    
    

    Estruturas de Decisão Condicional Simples e Composta

    Como sabemos, o condicional simples é usada para testar condições e determinar as ações a seguir de acordo com o resultado do teste, contendo apenas o if.

    O condicional composto contém o if e o else, que executa um código se a expressão do if for verdadeira, caso contrário ele executará o código do else.

    Veja um exemplo de condicional simples em C#:

    
    using System;
    
    namespace EstruturasCondicionaisSimplesEComposta {
        class Program {
            static void Main(string[] args) {
                int num1;
                int num2;
    
                Console.Write("Digite um número: ");
                num1 = int.Parse(Console.ReadLine());
    
                Console.Write("Digite outro número: ");
                num2 = int.Parse(Console.ReadLine());
    
                if(num1 == num2) {
                    Console.Write("Os números " + num1 + " e " + num2 + " são iguais!");
                }
    
                Console.Read();
            }
        }
    }
    
    

    Da mesma forma, para criar um condicional composto, basta colocar o else abaixo do if, ele automaticamente é relacionado à chave do último if:

    
    if(num1 == num2) {
        Console.Write("Os números " + num1 + " e " + num2 + " são iguais!");
    }
    else {
        Console.Write("Os números " + num1 + " e " + num2 + " são diferentes!");
    }