/strings.java Secret
Created
April 10, 2017 13:29
Star
You must be signed in to star a gist
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Main { | |
public static boolean iguais(String s1, String s2) { | |
if (s1.length() != s2.length()) return false; | |
for (int i=0;i<s1.length();i++) { | |
if (s1.charAt(i) != s2.charAt(i)) return false; | |
} | |
return true; | |
} | |
public static int vogais(String s1) { | |
int quantas = 0; | |
s1 = s1.toUpperCase(); | |
for (int i = 0; i < s1.length(); i++) { | |
char c = s1.charAt(i); | |
if (c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U') { | |
quantas++; | |
} | |
} | |
return quantas; | |
} | |
public static int consoantes(String s1) { | |
int quantas = 0; | |
s1 = s1.toUpperCase(); | |
for (int i = 0; i < s1.length(); i++) { | |
char c = s1.charAt(i); | |
if ((c >= 'A' && c <= 'Z') && !(c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U')) { | |
quantas++; | |
} | |
} | |
return quantas; | |
} | |
public static String removeNaoAlfa(String s1) { | |
char [] s1char = new char [s1.length()]; | |
int j = 0; | |
for (int i = 0; i<s1.length(); i++) { | |
char c = s1.charAt(i); | |
if ( (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') ) { | |
s1char[j] = c; | |
j++; | |
} | |
} | |
return new String(s1char); | |
} | |
public static String concatena(String s1, String s2) { | |
char [] s3 = new char [s1.length() + s2.length()]; | |
for (int i = 0; i<s1.length(); i++) { | |
s3[i] = s1.charAt(i); | |
} | |
for (int i = 0; i<s2.length(); i++) { | |
s3[i + s1.length()] = s2.charAt(i); | |
} | |
return new String(s3); | |
} | |
public static char maisFrequente(String s1) { | |
int [] freq = new int [26]; | |
s1 = s1.toUpperCase(); | |
/* Conta quantas vezes cada letra aparece */ | |
for (int i=0; i<s1.length();i++) { | |
char c = s1.charAt(i); | |
freq[c - 'A'] += 1; | |
} | |
/* Verifica posicao de maior valor */ | |
int pos = 0; | |
for (int i=1; i<26; i++) { | |
if (freq[i] > freq[pos]) { | |
pos = i; | |
} | |
} | |
return (char) (pos + 'A'); | |
} | |
public static int quantasPalavras(String s1) { | |
int quantas = 0; | |
int i = 0; | |
/* pula o espaço inicial */ | |
while ((i<s1.length()) && (s1.charAt(i) == ' ')) i++; | |
while (i<s1.length()) { | |
quantas += 1; | |
/* vai até o fim da palavra */ | |
while ((i<s1.length()) && (s1.charAt(i) != ' ')) i++; | |
/* procura o começo da próxima */ | |
while ((i<s1.length()) && (s1.charAt(i) == ' ')) i++; | |
} | |
return quantas; | |
} | |
public static String maiorPalavra(String s1) { | |
String maior = ""; /* menor palavra possível */ | |
int i = 0; | |
/* pula o espaço inicial */ | |
while ((i<s1.length()) && (s1.charAt(i) == ' ')) i++; | |
while (i<s1.length()) { | |
int comeco = i; | |
int fim = i; | |
/* vai até o fim da palavra */ | |
while ((i<s1.length()) && (s1.charAt(i) != ' ')) i++; | |
fim = i; | |
if ( (fim-comeco) > maior.length() ) { | |
maior = s1.substring(comeco, fim); | |
} | |
/* procura o começo da próxima */ | |
while ((i<s1.length()) && (s1.charAt(i) == ' ')) i++; | |
} | |
return maior; | |
} | |
public static String menorPalavra(String s1) { | |
String menor = s1; /* maior palavra possível */ | |
int i = 0; | |
/* pula o espaço inicial */ | |
while ((i<s1.length()) && (s1.charAt(i) == ' ')) i++; | |
while (i<s1.length()) { | |
int comeco = i; | |
int fim = i; | |
/* vai até o fim da palavra */ | |
while ((i<s1.length()) && (s1.charAt(i) != ' ')) i++; | |
fim = i; | |
if ( (fim-comeco) < menor.length() ) { | |
menor = s1.substring(comeco, fim); | |
} | |
/* procura o começo da próxima */ | |
while ((i<s1.length()) && (s1.charAt(i) == ' ')) i++; | |
} | |
return menor; | |
} | |
/* verifica se s2 é igual ao trecho i até i+s2.length de s1 */ | |
public static boolean encontrou(String s1, String s2, int i) { | |
for (int j=0;j<s2.length();j++) { | |
if (s1.charAt(i+j) != s2.charAt(j)) return false; | |
} | |
return true; | |
} | |
public static boolean substring(String s1, String s2) { | |
if (s2.length() > s1.length()) return false; // a substring deve ser menor | |
for (int i=0; i<s1.length()-s2.length();i++) { | |
if ( encontrou(s1, s2, i) ) return true; | |
} | |
return false; | |
} | |
public static int bin2dec(String bin) { | |
int dec = 0; | |
for (int i = 0; i<bin.length(); i++) { | |
if (bin.charAt(i)=='1') { | |
dec += (int) Math.pow(2, bin.length()-1-i); | |
} | |
} | |
return dec; | |
} | |
public static boolean ehPalindrome(String s) { | |
for( int i=0; i<s.length()/2; i++ ) { | |
if( s.charAt(i) != s.charAt(s.length()-i-1) ){ | |
return false; | |
} | |
} | |
return true; | |
} | |
public static String inverte(String s) { | |
char [] s2char = s.toCharArray(); | |
for (int i=0; i<s2char.length/2; i++) { | |
char tmp = s2char[i]; | |
s2char[i] = s2char[s.length()-i-1]; | |
s2char[s.length()-i-1] = tmp; | |
} | |
return new String(s2char); | |
} | |
public static int [] frequencia(String s1) { | |
int [] freq = new int [26]; | |
s1 = s1.toUpperCase(); | |
/* Conta quantas vezes cada letra aparece */ | |
for (int i=0; i<s1.length();i++) { | |
char c = s1.charAt(i); | |
freq[c - 'A'] += 1; | |
} | |
return freq; | |
} | |
public static boolean pangran(String s) { | |
int [] freq = frequencia(s); | |
for (int i=0; i<26;i++) { | |
if (freq[i]==0) return false; | |
} | |
return true; | |
} | |
public static String cifra(String s) { | |
char [] schar = s.toUpperCase().toCharArray(); | |
for (int i = 0; i<schar.length; i++) { | |
switch(schar[i]) { | |
case 'A': schar[i]='4'; break; | |
case 'C': schar[i]='('; break; | |
case 'E': schar[i]='&'; break; | |
case 'G': schar[i]='6'; break; | |
case 'H': schar[i]='#'; break; | |
case 'I': schar[i]='!'; break; | |
case 'O': schar[i]='0'; break; | |
case 'S': schar[i]='$'; break; | |
case 'T': schar[i]='7'; break; | |
case 'X': schar[i]='%'; break; | |
} | |
} | |
return new String(schar); | |
} | |
public static String cifraCesar(String s, int n) { | |
char [] schar = s.toUpperCase().toCharArray(); | |
for (int i = 0; i<schar.length; i++) { | |
schar[i] = (char) ((schar[i] + n) % 256); | |
} | |
return new String(schar); | |
} | |
public static void main(String[] args) { | |
System.out.println(iguais("ola", "ola")); | |
System.out.println(vogais("ola mundo")); | |
System.out.println(consoantes("ola mundo b")); | |
System.out.println(removeNaoAlfa("a34^b!c''")); | |
System.out.println(concatena("ola ","mundo")); | |
System.out.println(maisFrequente("abdajaBaDeA")); | |
System.out.println(quantasPalavras(" abda j aBaDeA ")); | |
System.out.println(maiorPalavra(" abda abgeqwddafa j aBaDeA ")); | |
System.out.println(menorPalavra(" abda abgeqwddafa j aBaDeA ")); | |
System.out.println(substring("é bolacha ou biscoito?", "bolaxa")); | |
System.out.println( bin2dec("1010") ); | |
System.out.println( ehPalindrome("arara") ); | |
System.out.println( inverte("amor") ); | |
System.out.println( pangran("abc") ); | |
System.out.println( pangran("abcdefghijklmnopqrstuvwxyz") ); | |
System.out.println( cifra("abacate") ); | |
String s = "a prova estara dificil, cuidado para nao zerar"; | |
String s2 = cifraCesar(s, 2); | |
System.out.println(s2); | |
System.out.println(cifraCesar(s2, -2)); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment