Guest NoOne Posted January 24, 2007 at 03:57 PM Report #78289 Posted January 24, 2007 at 03:57 PM Por exemplo eu tenho a string: String b = "XYZW"; e alguem insere uma string com os seguintes caracters: "XXXX" o que eu quero verificar é s os caracters da string inserida constam na string b... neste caso o resultado seria verdadeiro. Porém não tou a conseguir fazer isto. if (!base11.contains(valor)) , nao funciona pois ele verifica se "XXXX" existe na string b. alguma ideia? alguma funçao predefenida que dê pra fazer isto? eu ja testei com dois fors mas acaba por nao dar o resultado pretendido. PS: espero ter conseguido ser explicito :S
Hipnoted Posted January 24, 2007 at 04:07 PM Report #78290 Posted January 24, 2007 at 04:07 PM Tens de usar o .equals: if(string1.equals(string2)) { // ... if(string1.equals("blablabla")) { // ... "Nunca discutas com um idiota. Eles arrastam-te até ao seu nível e depois ganham-te em experiência"
Guest NoOne Posted January 24, 2007 at 04:57 PM Report #78299 Posted January 24, 2007 at 04:57 PM isso tambem n faz o que preciso isso compara a string completa :/ o k preciso fazer é o seguinte: tenho uma lista de caracters possiveis (String b = "XYZW") , e uma string inserida pelo utilizador. kero verificar se todos os caracters inseridos pelo utilizador se encontram nessa lista... =/
Guest NoOne Posted January 24, 2007 at 05:27 PM Report #78300 Posted January 24, 2007 at 05:27 PM ja ta a funcionar, podem fechar / apagar este topico
Knitter Posted January 24, 2007 at 05:37 PM Report #78303 Posted January 24, 2007 at 05:37 PM Se tens um conjunto de caracteres então talvez fosse mais fácil teres isso em char, em vez de String. /*Opcao 1 - utiliza expressoes regulares*/ String possiveis = "XYZ"; String palavra = "Um Do li taz"; if(palavra.contains("\\[" + possiveis + "\\]")) { System.out.println("Contem"); } /*Opcao 2 - simples 'for'*/ char[] possiveis = new char[]{'X', 'Y', 'Z'}; String palavra = "Um Do li taz"; for(int i = 0; i < palavra.length(); i++) { if(palavra.indexOf(possiveis[i]) > -1 ) { System.out.println("Contem"); } } Edit. Já agora podias deixar a tua opção, assim todos ficam a saber. 😉
Guest NoOne Posted January 24, 2007 at 08:59 PM Report #78349 Posted January 24, 2007 at 08:59 PM String B= "ABCD"; for(a =0; a!=valor.length(); a++) if(!B.contains(valor.substring(a,a+1))) flag1=1; a variavel flag é incializada a zero, posteriormente verifico qual o valor d flag... se for 0 quer dizer k todos os caracters da string valor constam da lista na string B, se for 1 quer dizer que pelo menos um dos caracters n constam dessa lista
Knitter Posted January 24, 2007 at 09:25 PM Report #78362 Posted January 24, 2007 at 09:25 PM Tendo em conta que estás a usar expressões regulares, e a cortar a string por cada iteração apostava que a 2ª solução que te apresentei é ligeiramente mais rápida, mas a diferença pode ser negligenciável...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now