Alguem ai entende php para tranformar este metodo em java?
Eu ja tentei, mas não entendo nada de PHP.
functionconvert($src,$srcAlphabet,$dstAlphabet){$srcBase=strlen($srcAlphabet);$dstBase=strlen($dstAlphabet);$wet=$src;$val=0;$mlt=1;while($l=strlen($wet)){$digit=$wet[$l-1];$val+=$mlt*strpos($srcAlphabet,$digit);$wet=substr($wet,0,$l-1);$mlt*=$srcBase;}$wet=$val;$dst='';while($wet>=$dstBase){$digitVal=$wet%$dstBase;$digit=$dstAlphabet[$digitVal];$dst=$digit.$dst;$wet/=$dstBase;}$digit=$dstAlphabet[$wet];$dst=$digit.$dst;return$dst;}// prints cbprintconvert('125','[telefoneremovido]','abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789');// prints 19158printconvert('e9a','abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789','[telefoneremovido]');
strlen($wet) retorna o tamanho, tipo var.lenght() no java.
strpos($srcAlphabet, $digit); seria o método replace() ou substring()
Acho que de resto não tem muito mistério.
J
joao210180
Este código converte é para encurtar url, como abaixo:
jamirdeajr
strpos($srcAlphabet, $digit);
retorna em que posição digit existe em srcAlphabet, em java seria equivalente ao indexOf
jamirdeajr
Vai ai a conversão de PHP para Java. Não me preocupei em otimizar nada, apenas fiz funcionar ok!
publicstaticStringconvert(Stringsrc,StringsrcAlphabet,StringdstAlphabet){intsrcBase=srcAlphabet.length();intdstBase=dstAlphabet.length();Stringwet=src;Stringdigit;Stringdst;intval=0;intmlt=1;intl=wet.length();while(l!=0){digit=wet.substring(l-1,l);val+=mlt*srcAlphabet.indexOf(digit);wet=wet.substring(0,l-1);mlt*=srcBase;l=wet.length();}intwetInt=val;dst="";intdigitVal;while(wetInt>=dstBase){digitVal=wetInt%dstBase;digit=dstAlphabet.substring(digitVal,digitVal+1);dst=digit+dst;wetInt/=dstBase;}digit=dstAlphabet.substring(wetInt,wetInt+1);dst=digit+dst;returndst;}publicstaticvoidmain(String[]args){// prints cbSystem.out.println(convert("125","[telefone removido]","abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"));// prints 19158System.out.println(convert("e9a","abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789","[telefone removido]"));}
J
joao210180
jamirdeajr:
Vai ai a conversão de PHP para Java. Não me preocupei em otimizar nada, apenas fiz funcionar ok!
publicstaticStringconvert(Stringsrc,StringsrcAlphabet,StringdstAlphabet){intsrcBase=srcAlphabet.length();intdstBase=dstAlphabet.length();Stringwet=src;Stringdigit;Stringdst;intval=0;intmlt=1;intl=wet.length();while(l!=0){digit=wet.substring(l-1,l);val+=mlt*srcAlphabet.indexOf(digit);wet=wet.substring(0,l-1);mlt*=srcBase;l=wet.length();}intwetInt=val;dst="";intdigitVal;while(wetInt>=dstBase){digitVal=wetInt%dstBase;digit=dstAlphabet.substring(digitVal,digitVal+1);dst=digit+dst;wetInt/=dstBase;}digit=dstAlphabet.substring(wetInt,wetInt+1);dst=digit+dst;returndst;}publicstaticvoidmain(String[]args){// prints cbSystem.out.println(convert("125","[telefone removido]","abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"));// prints 19158System.out.println(convert("e9a","abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789","[telefone removido]"));}
Muito Obrigado jamirdeajr!
Você fez um ótimo trabalho, eu quebrei a cabeça tentando resolver isso, fiquei um dia inteiro tentando mas não entendo PHP.
Te agradeço de verdade, e gostaria até de pagar uma cerveja :) :D :D
Grande abraço!
jamirdeajr
Não precisa não, foi até divertido de fazer!
Abraço!