2010-10-15 2 views
1

Я пытаюсь использовать конструктор строк для преобразования массива 2d char в строку. Проблемы с поиском соответствующего конструктора. Я попытался использовать различные конструкторы, но ничего не работает.Проблемы с кодированием массива символов в строку

+1

Как будет отображать 2D-массив символов в одну строку? – Cameron

+0

Похоже, вы работаете на гораздо более низких уровнях абстракции, чем вам нужно/должно быть. Почему есть массив массивов символов? Это Java, а не C. Если вы читаете все строки файла, я подозреваю, что вы можете получить массив или Список строк. В этом случае вы можете создать StringBuilder, перебрать все строки, добавить их в построитель строк и поместить «\ n» между каждой строкой. Используйте полученную строку в методе setText. – I82Much

+0

@Cameron Мне сказали, что мне нужно преобразовать массив 2d char, чтобы отобразить массив в графическом интерфейсе. SetText принимает только строку. –

ответ

0

Что означает массив 2d char в строку?

Если у вас есть это: {{ 'а', 'B', 'C'}, { 'D', 'е', 'F'}}

вы хотите, чтобы результат: "ABCDEF"?

+0

Я читаю входной файл символов. Я помещаю символы в массив символов. Теперь я хочу отобразить массив в графический интерфейс. Но метод setText принимает только строки. –

0

Вы хотите превратить массив 2d char в одну строку? Кажется странным. Вы хотите просто конкатенировать каждую строку в конце последней строки?

Короче говоря, я не думаю, что вы найдете встроенный конструктор для этого. Вам, вероятно, придется написать что-то, чтобы сделать это преобразование самостоятельно.

EDIT:
на основе ваших комментариев это выглядит, как вы используете неправильную структуру данных, когда вы изначально прочитать файл. Вот фрагмент кода для чтения целого файла в строку, поэтому вам не нужно делать какое-либо преобразование позже.

StreamReader MyStreamReader = new StreamReader(@"c:\Projects\Testing.txt"); 
    string fileContents= MyStreamReader.ReadToEnd(); 
    MyStreamReader.Close(); 
+0

Как бы мне начать что-то подобное. Я начинающий программист на Java. –

+0

На основе вашего комментария к отвечу Райана.Я думаю, вам нужно сделать один шаг назад к основной проблеме. Вы должны прочитать данные в одной строке за раз в массив строк или 1d символов и проблема является спорной. Если вы разместите свой код, который читает файл, я могу вам помочь более подробно. – JohnFx

+0

Назначение вызывает чтение входного файла и помещение данных в массив символов 10x10. –

1
char chars[][]= {{'a', 'b', 'c'}, {'d', 'e', 'f'}}; 

     StringBuilder sb = new StringBuilder(); 

    for(int i = 0; i<2 ;i++){ 

     for(int j =0; j<3; j++){ 


      sb.append(chars[i][j]); 

     } 

    } 


     System.out.print(sb.toString()); 

это один из моих вариант сделать .. все же .. там может быть хороший код !! Ищите его !!!

+0

Я пробовал ваш метод, но его высказывание, что setText не может использоваться со строковым построителем. –

+0

@ Mister Bunker - Подсказка - посмотрите на javadocs для StringBuilder. –

+0

@ Mister Bunker В StringBuilder нет метода вызова setText, и я его не использовал !! – Vanji

1

Это даст вам список струна

char[][] arr={{'a', 'b', 'c'}, {'d', 'e', 'f'}}; 
    List<String> list=new ArrayList<String>(); 
    for(char[] ar:arr) 
    { 
     list.add(new String(ar)); 
    } 

Если вы хотите 2d массив символов в виде одной строки:

StringBuilder b=new StringBuilder();//use string builder instead of list 
    for(char[] ar:arr) 
    { 
     b.append(new String(ar)); 
    } 

Если вы просто хотите, чтобы напечатать обугленный 2d массива:

Arrays.deepToString(arr)); 
Смежные вопросы