Teteus Posted May 23, 2014 Report Posted May 23, 2014 (edited) Salutare, Ma poate elucida cineva in transformare unui string 2d in char 2d daca este posibila aceasta transformare. As dori sa transform String a[j] in char b[j],practic stringurile din a sa mi le transforme in caractere sa mi le puna in char de b[][]. Daca as folosi tehnicile cunoscute nu m-ar ajuta deoarece se foloseste un char 1d. Edited May 23, 2014 by Teteus Quote
nedo Posted May 23, 2014 Report Posted May 23, 2014 Pai ai o problema.String a[j] inseamna o matrice cu i randuri si j coloane de stringuri.Dar un string este o matrice cu 1 singur rand si cu x numar de coloane(numarul de caractere din string)daca tu vrei sa transformi din string in char atunci va mai trebui sa adaugi inca o dimensiune la char bpentru ca string a[j] este de fapt un char[x];Va trebui sa faci o functie ce trece prin fiecare rand si coloana din String a[j] si pentru fiecare string creezi un char c[] pe care il adaugi la char b[j][x]; Quote
alzheimer Posted May 23, 2014 Report Posted May 23, 2014 In a[j] (oricare ar fi i si j) ai doar un caracter? Quote
Teteus Posted May 23, 2014 Author Report Posted May 23, 2014 In a[j] (oricare ar fi i si j) ai doar un caracter?pot avea si mai multe caractere...eu vreau sa verific o matrice de caractere sa vad daca este simetrica(palindrom).exba 2 abba 2 ab;deci ba=ab si ba=ab pot spune ca matricea mea de 3x2 este simetrica si palindrom dupa coloana2.Eu am reusit sa fac chestia asta cu stringuri dar nu pot verivica carectere intre ele si am obtinut asa:ab 2 abab 2 abatunci simetrica si palindrom.Simetrica este da nu mai este palindrom...deci nu pot lucra cu caracterele intr un string.De aceea ma interesa sa trec string in caractere . Quote
FreddieTux Posted May 23, 2014 Report Posted May 23, 2014 (edited) pot avea si mai multe caractere...eu vreau sa verific o matrice de caractere sa vad daca este simetrica(palindrom).exba 2 abba 2 ab;deci ba=ab si ba=ab pot spune ca matricea mea de 3x2 este simetrica si palindrom dupa coloana2.Eu am reusit sa fac chestia asta cu stringuri dar nu pot verivica carectere intre ele si am obtinut asa:ab 2 abab 2 abatunci simetrica si palindrom.Simetrica este da nu mai este palindrom...deci nu pot lucra cu caracterele intr un string.De aceea ma interesa sa trec string in caractere .O sa iti explic cu alte cuvinte ce ziceau nedo si alzheimer.Trebuie sa privesti un obiect de tip String ca fiind o insiruire de caractere sau, mai bine zis, ca un char[] (desi nu este chiar asa, dar nu vreau sa ne complicam). Ca sa convertesti un String intr-un char[] trebuie sa folosesti metoda toCharArray().De exemplu:String str = "ana";char[] charArray = new char[str.length()];charArray = str.toCharArray();/* Sa afisam rezultatul */for (char c : charArray){ System.out.print(c);}System.out.println("");Pentru problema ta vei avea: String[][] myStringArray = new String[100][100];char[][][] myCharArray = new char[100][100][500];/* Citesti datele si apoi populezi myCharArray in modul urmator: */for(int i = 0; i<100; i++){ for(int j=0; j<100; j++){ myCharArray[i][j] = myStringArray[i][j].toCharArray(); }}De asemenea, poti compara daca un String este palindrom fara a-l converti intr-un tablou de char:String[] str = new String[100];/* Citesti datele si apoi: */int i,j,k;for(k=0; k< 100; k++){ for( i = 0, j = str[k].length()-1;i<j;i++,j-- ){ if(str[k].charAt(i)!=str[k].charAt(j)){ break; } } if(i>=j){ System.out.println("Sirul " + k + " este palindrom"); } else { System.out.println("Sirul " + k + " nu este palindrom"); }}Sau o metoda cu mai putine linii de cod:String[] str = new String[100];/* Citesti datele si apoi: */for(int i=0; i<100; i++){ if(str[i].equals(new StringBuilder(str[i]).reverse().toString())){ System.out.println("Sirul " + i + " este palindrom"); } else { System.out.println("Sirul " + i + " nu este palindrom"); }} Edited May 23, 2014 by FreddieTux Quote