GALERIA
EU NAO CONSIGO ESCUTAR EM JAVA…UM PROGRAMA NAO ESTA FUNCIONEI
EU FIZ LA EMBAIXO FOI ERREI MTO DIFICIL… OQ Q EU FAÇO??
ME AJUDA?
FLOW
import java.util.*;
class MinhaString{
//sub-classe leia()
public String leia(){ //Uma especie de sub-programa que voce cria so para ler
//Declaracao da classe scanner
Scanner scanner = new Scanner (System.in);
scanner.useLocale(new Locale("pt", "BR"));
//Leitura de uma String
System.out.printf("Digite uma String:");
String str = scanner.nextLine();
return str; //retornando o que foi lido e gravado em 'str'
}
public char leiaChar(){ //porque define o tipo do retorno
//Declaracao da classe scanner
Scanner scanner = new Scanner (System.in);
scanner.useLocale(new Locale("pt", "BR"));
//Leitura de uma String
System.out.printf("Digite uma char:");
char caractere = scanner.nextLine().charAt(0);
return caractere;
}
//sub-classe imprimir()
public void imprimir(String str){
System.out.println("String:" + str);
}
//sub-classe comparar() Diz se sao iguais ou nao
public void comparar(String s1, String s2){
boolean comparar = (s1.length() == s2.length());
if(comparar == true){
for(int i = 0; i < s1.length(); comparar &= (s1.charAt(i) == s2.charAt(i)), i++);
}
if(comparar == true){
System.out.println("As strings " + s1 + "/" + s2 + " sao iguais.");
}
else{
System.out.println("As strings " + s1 + "/" + s2 + " sao diferentes.");
}
}
//sub-classe compararAa() Diz se sao iguais ou nao
//Leia duas strings e compare o conteudo delas ignorando maiusculas e minusculas
public void compararAa(String s1, String s2){
boolean iguais;
// Assumo que e falso
iguais = s1.length() == s2.length();
// Se iguais verdadeiro pode ser iguais == true tambem
if(iguais) {
System.out.println("Verdadeiro");
}
else {
System.out.println("Falso");
}
}
//sub-classe concatenar () Diz se sao iguais ou nao
// Leia duas string e concatene o conteudo delas na primeira string
public void concatenar( String s1 , String s2) {
for(int i=0; i<s2.length(); i=i+1){
s1=s1+s2.charAt(i);
}
System.out.println("Concatenada:"+s1 );
}
//sub-classe concatenar () Diz se sao iguais ou nao
// Leia duas string e mostre sea segunda e sufixo da primeira
public void sufixo( String s1 , String s2){
boolean sufixo = false;
if( s2.length()< s1.length()) {
sufixo = true;
for( int i = 0; i < s2.length(); i++ ){
if( s1.charAt(i) != s2.charAt(i)){
sufixo = false;
}
}
}
System.out.println(" sufixo "+sufixo);
}
//sub-classe prefixo () Diz se sao iguais ou nao
// Leia duas string e mostre sea segunda e prefixo primeira
public void prefixo( String s1 , String s2){
boolean prefixo = false;
int i=0;
if( s2.length()< s1.length()) {
prefixo = true;
for( i=0; i < s2.length(); i++){
if( s1.charAt(i)!= s2.charAt(i)){
prefixo = false;
}
}
System.out.println( "pref= " + prefixo+ " s1= " +s1+ " s2= " +s2 );
}
}
//sub-classe contida () Diz se sao iguais ou nao
// Leia duas string e mostre se a segunda esta contida na primeira
public void contida(String s1 , String s2){
boolean contida = false;
if(s1.length() > s2.length()) {
for(int i=0; i < ( s1.length()-s2.length()+1); i=i+1 ) {
for(int j=0; j < s2.length(); j=j+1 ) {
j = s2.length();
if( s1.charAt(i+j)== s2.charAt(j) ) {
contida=true;
}
else {
contida=false;
}
}
if( contida ){ // voce vai usar para sair do for que tem o i como contador
i = s1.length()-s2.length()+1; // ele joga o limite ate onde i pode ir
}
}
}
// imprimir o resultando a contida
System.out.println("cont= "+contida+" s1= "+s1+" s2= "+s2);
}// fim do metodo contida(String, string)
//sub-classe caractere () Diz se sao iguais ou nao
// Leia uma string e um caractere e mostre qual e a
//posiçao da primeira ocorrencia do caractere na string
public void primeiroChar( String s1 , char c1 ){
for(int i=0; i<s1.length();i=i+1) {
if(s1.charAt(i)==c1) {
System.out.println("Primeira ocorrencia localizada na posicao "+(i+1)+".");
i=s1.length();
}
}
}
//sub-classe caractere () Diz se sao iguais ou nao
// Leia uma string e um caractere e mostre qual e a
//posiçao da ultima ocorrencia do caractere na string
public void ultimoChar ( String s1 , char c1){
for(int i=0; i<s1.length();i=i+1){
if(s1.charAt(s1.length()-(i+1))==c1){
System.out.println("Ultima ocorrencia localizada na posicao "+(s1.length()-i)+".");
i=s1.length();
}
}
}
//sub-classe caractere () Diz se sao iguais ou nao
// Leia uma string e um caractere e mostre quantas
//vezes o caratere ocorre na string
public void ocorrenciaChar( String s1 , char c1){
int contador;
contador =0;
//Contabilizar ocorrencias
for(int i=0; i<s1.length(); i=i+1) {
if(s1.charAt(i)==c1) {
contador=contador+1;
}
}
//Imprimir resultado
System.out.println("Total de "+contador+" ocorrencias.");
}
//sub-classe caractere () Diz se sao iguais ou nao
// Leia uma string e um caractere e mostre qual e a
//posiçao da primeira ocorrencia da segunda string na primeira
public void primeiroOcorrencia( String s1 , String s2){
boolean existe;
int posicao;
existe=false;
posicao=0;
//Ler string e caracter
System.out.print("Digite a linha 1: ");
s1=scanner.nextLine();
System.out.print("Digite a linha 2: ");
s2=scanner.nextLine();
//Localizar posicao
if(s1.length()>s2.length()) {
for(int i=0; i<(s1.length()-s2.length()+1);i=i+1) {
for(int j=0;j<s2.length();j=j+1) {
if(s1.charAt(i+j)!=s2.charAt(j)) {
existe=false;
j=s2.length();
}
else {
existe=true;
}
}
if(existe) {
posicao=i;
i=(s1.length()-s2.length());
}
}
}
//Imprimir resultado
if(existe) {
System.out.println("Primeira ocorrencia na posicao "+posicao+".");
}
else {
System.out.println("Nenhuma ocorrencia.");
}
}
//sub-classe caractere () Diz se sao iguais ou nao
//Leia duas strings e mostre qual a posicao da ultima ocorrencia da
// segunda string na primeira.
public void ultimoOcorrencia ( String s1 , String s2){
existe=false;
posicao=0;
//Ler string e caracter
System.out.print("Digite a linha 1: ");
s1=scanner.nextLine();
System.out.print("Digite a linha 2: ");
s2=scanner.nextLine();
//Localizar e imprimir posicao
if(s1.length()>s2.length()) {
for(int i=0; i<(s1.length()-s2.length()+1);i=i+1) {
for(int j=0;j<s2.length();j=j+1) {
if(s1.charAt(s1.length()-i-(j+1))!=s2.charAt(s2.length()-(j+1))) {
existe=false;
j=s2.length();
}
else {
existe=true;
}
}
if(existe) {
posicao=s1.length()-(i+s2.length());
i=(s1.length()-s2.length()+1);
}
}
}
//Imprimir resultado
if(existe) {
System.out.println("Ultima ocorrencia na posicao "+posicao+".");
}
else {
System.out.println("Nenhuma ocorrencia.");
}
}
//sub-classe caractere () Diz se sao iguais ou nao
// Leia uma string e um caractere e substitua cada
//ocrrencia desse caractere por um outro gerado de forma aleatoria
public void aleatoria ( StringBuffer s1 ,char c1, char c2){
c2=(char)(Math.random()*94+32);
//Ler string e caracter
System.out.print("Digite a linha: ");
s1=new StringBuffer(scanner.nextLine());
System.out.print("Digite o caracter: ");
c1=scanner.next().charAt(0);
//Localizar e substituir ocorrencias
for(int i=0; i<s1.length(); i=i+1) {
if(s1.charAt(i)==c1) {
s1.setCharAt(i,c2);
}
}
//Imprimir resultado
System.out.println("Resultado: "+s1);
}
//sub-classe caractere () Diz se sao iguais ou nao
// Leia duas string e substitua cada ocorrencia da
//segunda na primeira por uma nova substring gerada de forma aleatoria
public void substring ( StringBuffer s1 , String s2, String s3 ){
boolean existe;
s3="";
existe=false;
//Ler string e caracter
System.out.print("Digite a linha 1: ");
s1=new StringBuffer(scanner.nextLine());
System.out.print("Digite a linha 2: ");
s2=scanner.nextLine();
//Gerar substring aleatoria
for(int i=0; i<s2.length(); i=i+1){
s3=s3+(char)(Math.random()*94+32);
}
//Localizar posicao e substituir ocorrencias
if(s1.length()>s2.length()) {
for(int i=0; i<(s1.length()-s2.length()+1);i=i+1) {
for(int j=0;j<s2.length();j=j+1) {
if(s1.charAt(i+j)!=s2.charAt(j)) {
existe=false;
j=s2.length();
}
else {
existe=true;
}
}
if(existe) {
for(int k=0; k<s1.length(); k=k+1) {
if(i<=k&&k<(i+s3.length())) {
s1.setCharAt(k,s3.charAt(k-i));
}
}
}
}
}
//Imprimir resultado
if(existe) {
System.out.println("Resultado: "+s1);
}
else {
System.out.println("Nenhuma ocorrencia.");
}
}
//sub-classe caractere () Diz se sao iguais ou nao
//Leia uma cadeia de caracteres e retorna true
//se a mesma for um numero inteiro
public void inteiro ( String s1){
boolean integer;
integer = true;
//Ler string
System.out.print("Digite a linha: ");
s1 =scanner.nextLine();
//Verificar por inteiro
for(int i=0;i<s1.length();i=i+1) {
if(s1.charAt(i)<'0'||'9'<s1.charAt(i)) {
integer=false;
}
}
//Imprimir resultado
if(integer) {
System.out.print("Numero inteiro? Verdade");
}
else {
System.out.print("Numero inteiro? Falso");
}
}
//sub-classe caractere () Diz se sao iguais ou nao
//Leia uma cadeia de caracteres e retorna true
//se a mesma for um numero real
public void real ( String s1){
boolean real;
String s1;
int dots;
dots=0;
real=true;
//Ler string
System.out.print("Digite a linha: ");
s1=scanner.nextLine();
//Verificar por real
for(int i=0;i<s1.length();i=i+1) {
if(s1.charAt(i)<'0'||'9'<s1.charAt(i)) {
if(s1.charAt(i)=='.') {
dots=dots+1;
if(dots>1) {
real=false;
i=s1.length();
}
}
else {
real=false;
}
}
}
//Imprimir resultado
if(real) {
System.out.print("Numero real? Verdade");
}
else {
System.out.print("Numero real? Falso");
}
}
//sub-classe caractere () Diz se sao iguais ou nao
//Leia uma cadeia de caracteres, se ela for um numero
//inteiro, faça a conversao da mesma para um numero inteiro.
//Senao, se ela for um numero real, faça a conversao da mesma
//para um numero real
public void conversao( String s1){
boolean integer, real;
int dots, numI;
double numR;
dots=0;
integer=true;
real=true;
numI=0;
numR=0;
//Ler string
System.out.print("Digite a linha: ");
s1=scanner.nextLine();
//Verificar por inteiro e real
for(int i=0;i<s1.length();i=i+1) {
if(s1.charAt(i)<'0'||'9'<s1.charAt(i)) {
integer=false;
if(s1.charAt(i)=='.') {
dots=dots+1;
if(dots>1) {
real=false;
i=s1.length();
}
}
else {
real=false;
}
}
}
//Converter para inteiro ou real
if(integer) {
for(int i=0; i<s1.length(); i=i+1) {
numI=numI+(s1.charAt(i)-48)*(int)Math.pow(10,s1.length()-(i+1));
}
}
else {
if(real) {
for(int i=0; i<s1.length(); i=i+1) {
if(s1.charAt(i)=='.') {
numR=numR/Math.pow(10,s1.length()-(i+1));
}
else {
numR=numR+(s1.charAt(i)-48)*Math.pow(10,s1.length()-(i+1));
}
}
}
}
//Imprimir resultado
if(integer) {
System.out.print("Numero inteiro: "+numI);
}
else {
if(real) {
numR=Double.parseDouble(s1);
System.out.print("Numero real: "+numR);
}
else {
System.out.print("A linha nao e um numero inteiro ou real.");
}
}
}
//sub-classe caractere () Diz se sao iguais ou nao
//Leia um numero inteiro e o converta para um String
public void convertaInt ( String s1){
int numI;
s1="";
//Ler numero inteiro
System.out.print("Digite o numero inteiro: ");
numI=scanner.nextInt();
//Verificar por inteiro e real
s1=s1+numI;
//Imprimir resultado
System.out.print("Numero convertido: "+s1);
}
//sub-classe caractere () Diz se sao iguais ou nao
//Leia um numero real e o converta para um String
public void convertaReal ( String s1 , String s2){
double numR;
s1="";
//Ler numero inteiro
System.out.print("Digite o numero real: ");
numR=scanner.nextDouble();
//Verificar por inteiro e real
s1=s1+numR;
//Imprimir resultado
System.out.print("Numero convertido: "+s1);
}
//classe principal
public static void main(String args[]) {
//Declaracao da classe scanner dentro de main()
Scanner scanner = new Scanner (System.in);
scanner.useLocale(new Locale("pt", "BR"));
//Declarando o objeto minhaString
MinhaString minhaString = new MinhaString();
//Declarando a variavel para opcao escolhida
char opcao;
// neste caso voce quer que ele execute tudo entao
do {
//Lendo a opcao escolhida e atribuindo a opcao
System.out.println("Escolha uma opcao para executar: ");
opcao = scanner.next().charAt(0);
switch (opcao) {
case 'a':
System.out.println("Teste1");
minhaString.comparar(minhaString.leia() , minhaString.leia());
break; //que em ingles quer dizer quebrar ou sair da execucao
case 'b':
System.out.println("Teste2");
minhaString.compararAa(minhaString.leia() , minhaString.leia());
//O sub-programa ou sub-classe que voce quer chamar vem aqui
break; //que em ingles quer dizer quebrar ou sair da execucao
case 'c':
System.out.println("Teste3");
minhaString.concatenar(minhaString.leia() , minhaString.leia());
//O sub-programa ou sub-classe que voce quer chamar vem aqui
break; //que em ingles quer dizer quebrar ou sair da execucao
case 'd':
System.out.println("Teste4");
minhaString.sufixo(minhaString.leia() , minhaString.leia());
//O sub-programa ou sub-classe que voce quer chamar vem aqui
break; //que em ingles quer dizer quebrar ou sair da execucao
case 'e':
System.out.println("Teste5");
minhaString.prefixo(minhaString.leia() , minhaString.leia());
//O sub-programa ou sub-classe que voce quer chamar vem aqui
break; //que em ingles quer dizer quebrar ou sair da execucao
case 'f':
System.out.println("Teste6");
minhaString.contida(minhaString.leia() , minhaString.leia());
//O sub-programa ou sub-classe que voce quer chamar vem aqui
break; //que em ingles quer dizer quebrar ou sair da execucao
case 'g':
System.out.println("Teste7");
minhaString.primeiroChar(minhaString.leia() , minhaString.leiaChar());
//O sub-programa ou sub-classe que voce quer chamar vem aqui
break; //que em ingles quer dizer quebrar ou sair da execucao
case 'h':
System.out.println("Teste8");
minhaString.ultimoChar(minhaString.leia() , minhaString.leiaChar());
//O sub-programa ou sub-classe que voce quer chamar vem aqui
break; //que em ingles quer dizer quebrar ou sair da execucao
case 'i':
System.out.println("Teste9");
minhaString.ocorrenciaChar(minhaString.leia() , minhaString.leiaChar());
//O sub-programa ou sub-classe que voce quer chamar vem aqui
break; //que em ingles quer dizer quebrar ou sair da execucao
case 'j':
System.out.println("Teste10");
minhaString.primeiroOcorrencia(minhaString.leia() , minhaString.leia());
//O sub-programa ou sub-classe que voce quer chamar vem aqui
break; //que em ingles quer dizer quebrar ou sair da execucao
case 'k':
System.out.println("Teste11");
minhaString.ultimoOcorrecia(minhaString.leia() , minhaString.leia());
//O sub-programa ou sub-classe que voce quer chamar vem aqui
break; //que em ingles quer dizer quebrar ou sair da execucao
case 'l':
System.out.println("Teste12");
minhaString.aleatoria(minhaString.leia() , minhaString.leiaChar());
//O sub-programa ou sub-classe que voce quer chamar vem aqui
break; //que em ingles quer dizer quebrar ou sair da execucao
case 'm':
System.out.println("Teste13");
minhaString.substring(minhaString.leia() , minhaString.leia());
//O sub-programa ou sub-classe que voce quer chamar vem aqui
break; //que em ingles quer dizer quebrar ou sair da execucao
case 'n':
System.out.println("Teste14");
minhaString.inteiro(minhaString.leia() , minhaString.leia());
//O sub-programa ou sub-classe que voce quer chamar vem aqui
break; //que em ingles quer dizer quebrar ou sair da execucao
case 'o':
System.out.println("Teste15");
minhaString.real(minhaString.leia() , minhaString.leia());
//O sub-programa ou sub-classe que voce quer chamar vem aqui
break; //que em ingles quer dizer quebrar ou sair da execucao
case 'p':
System.out.println("Teste16");
minhaString.conversao(minhaString.leia() , minhaString.leia());
//O sub-programa ou sub-classe que voce quer chamar vem aqui
break; //que em ingles quer dizer quebrar ou sair da execucao
case 'q':
System.out.println("Teste17");
minhaString.convertaInt(minhaString.leia() , minhaString.leia());
//O sub-programa ou sub-classe que voce quer chamar vem aqui
break; //que em ingles quer dizer quebrar ou sair da execucao
case 'r':
System.out.println("Teste18");
minhaString.convertaReal(minhaString.leia() , minhaString.leia());
//O sub-programa ou sub-classe que voce quer chamar vem aqui
break; //que em ingles quer dizer quebrar ou sair da execucao
}
}while(opcao!='S');
}
}