Syntro126 Posted March 3, 2017 Report Posted March 3, 2017 Salut, m-am apucat de cateva zile de java si incerc sa fac un program sa-mi transforme text in binar dar nu prea imi iese. Cand introduc textul imi apare cate un 0 pentru fiecare litera. Metoda binary am verificat-o separat si merge. package bench; import java.util.Scanner; public class Function { public static void main(String args[]){ Scanner input = new Scanner(System.in); String text = input.nextLine(); int n = text.length(); int m[] = new int[n]; String x[] ={"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"}; for(int i = 0; i < text.length(); i++){ for(int j = 0; j < x.length ; j++){ if(text.substring(i,i+1) == x[j]) m = 97 + j; } } for(int j1 = 0 ; j1 < m.length ; j1++){ binary(m[j1]); } } public static void binary(int c){ int d = 1 , e = 0 ; while(c >=1 ){ if(c % 2 == 0) d = d*10; else d = d*10 + 1; c = c / 2; } while(d > 1){ e = e*10 + d % 10; d = d/10; } System.out.print(e + " "); } } Quote
AlStar Posted March 4, 2017 Report Posted March 4, 2017 Cum ai pus codul aici? 13 hours ago, Syntro126 said: m = 97 + j; Cateva linii mai sus, m e int[] - compile error 2. De ce cauti in x[]? De ce pui 97+j , in loc de x[j] ? "A" nu poate fi convertit de binary? Daca te intereseaza doar literele mici, poti verifica fiecare litera din input cu intervalul [97, 122] 3. Unul din cele mai importante lucruri pe care le-am invatat in programare a fost sa nu folosesc variabile de genul a,b,c,x,plm. i,j - sunt ok ca si indecsi, dar fara j1. In cazul de fata, j1 poate fi redenumit in i, intrucat nu mai exista inafara primului for. n - inputLength, m - extractedLetters (sau ceva de genul). N-am compilat codul, dar la prima vedere pare a fi o problema in modul de constructie a array-ului m. Quote
Syntro126 Posted March 4, 2017 Author Report Posted March 4, 2017 Mersi pentru sfaturi, am rezolvat. Am scos n si m[] si am schimbat if- ul ala si mi-a iesit Quote