Trabalhando com Strings no JAVA
Autor: Marco Aurelio | Publicado: 2012-08-20T09:12:00-07:00

Formas simples de se trabalhar com Strings e ArrayList no java usando&nbsp;métodos&nbsp;estáticos&nbsp;(static)

===================================


package editor;
import java.util.ArrayList;
import javax.swing.JOptionPane;
public class Editor {
 /**
  * Faça um Editor de textos primitivo c/ o seguinte menu
  * 1 - Digitar uma linha
  * 2 - Digitar Textos até que "sair" seja digitado
  * 3 - Exibir
  * 4 - Remover a Linha: informar numero da linha
  * 5 - Editar Linha: informar numero da linha
  * 6 - Limpar
  * 7 - Localizar: Pergunta pela palavra
  * 8 - Substituir: Pergunta pela palavra antiga, nova e substitui.
  *   * @param args
  */ 
 private static ArrayList&lt;String&gt; texto = new ArrayList&lt;String&gt;();
 private static String linha;
 private static String nova;
 private static String palavra;
 private static String linhas;
 private static int op;
 
 
 // DIGITAR UMA UNICA LINHA
 public static void setLinha(String linha){
  texto.add(linha);
 }
 
 // DIGITAR VARIAS LINHAS
 public static void setLinhas(String linhas){
  do{
  if (linhas.equals("sair")){ // "equals" usado para comparar strings
  break;}else{texto.add(linhas);}
  }while(!(linhas.equals("sair")));
 }
 
 // EXIBIR O TEXTO
 public static void getTexto(){
  int i = 0;
  for (String s : texto) {
  linha = texto.get(i);
  System.out.println(linha);
  i++;
  }
 }
 
 // REMOMVER UMA LINHA
 public static void remLinha(int pos){
  texto.remove(pos);
  getTexto();
 }
 
 // EDITAR UMA LINHA
 public static void editLinha(int pos, String linha){  
  texto.set(pos, linha);
  getTexto();
 }
 
 // APAGARR O ARRAY
 public static void limpar(){
  if (JOptionPane.showConfirmDialog(null, "Deseja realmente limpar todo o texto?")==JOptionPane.YES_OPTION){
  texto.clear();}
 }
 
 // ENCONTRAR UMA PALAVRA OU SEQUENCIA DE CARACTERES
 public static void localizar(){
  palavra = JOptionPane.showInputDialog("Digite a sequencia que deseja localizar");
  int i = 0;
  for (String s : texto) {
   linha = texto.get(i);
   if(linha.contains(palavra)){
    JOptionPane.showMessageDialog(null, "palavra ("+palavra+") encontrada na linha "+i);
   //System.out.println("palavra ("+palavra+") encontrada na linha "+i); 
   }
   i++;
   }
 }

&nbsp; &nbsp; &nbsp; &nbsp;// SUBSTITUIR UMA PALAVRA OU SEQUENCIA DE CARACTERES
 public static void substituir(){
  palavra = JOptionPane.showInputDialog("Digite a palavra a ser substituida");
  nova = JOptionPane.showInputDialog("Digite a nova palavra");
  op = 0;
  op = Integer.parseInt(JOptionPane.showInputDialog("Digite: \n 1 - Substituir a primeira ocorrencia.\n 2 - Substituir todas as ocorrencias."));
   int i = 0;
    for (String s : texto) {
     linha = texto.get(i); // pega a linha na posiÃ§Ã§Ã£o "i" do ArrayList texto
     if(linha.contains(palavra)){ // verifica se a linha contem (contains) a palavra a ser trocada
      if (op == 1){
      linha = linha.replaceFirst(palavra, nova);// troca a palavra pela nova, na linha
      texto.set(i, linha);//
      break;}// Se foi escolhido substituir apenas a primeira ocorrencia (op == 1), para por aqui
      else if (op == 2){
      linha = linha.replaceAll(palavra, nova);// troca a palavra pela nova, na linha
      texto.set(i, linha);
      }
     }
     i++;
    }
 }
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  int acao;
  do{
  acao = Integer.parseInt(JOptionPane.showInputDialog("Escolha uma das opções:\n1 - Digitar uma linha\n2 - Digitar linhas: &lt;sair&gt; para encerrar\n3 - Exibir\n4 - Remover Linha\n5 - Editar Linha\n6 - Limpar\n7 - Localizar\n8 - Substituir\n9 - Encerrar")); 
  switch (acao) {
  case 1:
   try {
    setLinha(JOptionPane.showInputDialog("Digite a linha"));
   } catch (Exception e) {
    // TODO: handle exception
    System.out.println("Alguma coisa saiu errado, tente outra vez");
   }   
   break;
  case 2:
   try {
    setLinhas(JOptionPane.showInputDialog("Digite nova linha. &lt;sair&gt;, para encerrar digitação"));
   } catch (Exception e) {
    // TODO: handle exception
    System.out.println("Alguma coisa saiu errado, tente outra vez");
   }   
   break;   
  case 3:
   try {
    getTexto();
   } catch (Exception e) {
    // TODO: handle exception
    System.out.println("Alguma coisa saiu errado, tente outra vez");
   }   
   break;
  case 4:
   try {
    remLinha(Integer.parseInt(JOptionPane.showInputDialog("Digite o numero da linha que deseja remover")));
   } catch (Exception e) {
    // TODO: handle exception
    System.out.println("Alguma coisa saiu errado, tente outra vez");
   }   
   break;
  case 5:
   try {
    editLinha(Integer.parseInt(JOptionPane.showInputDialog("Digite o numero da linha que deseja editar")), JOptionPane.showInputDialog("Digite a linha"));
   } catch (Exception e) {
    // TODO: handle exception
    System.out.println("Alguma coisa saiu errado, tente outra vez");
   }   
   break;
  case 6:
   try {
    limpar();
   } catch (Exception e) {
    // TODO: handle exception
    System.out.println("Alguma coisa saiu errado, tente outra vez");
   }   
   break;
   
  case 7:
   try {
    localizar();
   } catch (Exception e) {
    // TODO: handle exception
    System.out.println("Alguma coisa saiu errado, tente outra vez");
   }   
   break;
  case 8:
   try {
    substituir();
   } catch (Exception e) {
    // TODO: handle exception
    System.out.println("Alguma coisa saiu errado, tente outra vez");
   }   
   break;
  case 9:
   
   break;

  default:
   JOptionPane.showMessageDialog(null, "Escolha apenas as opções de 1 a 9");
   break;
  }
  }while(acao != 9);
 }

}