2014-04-24 2 views
0

я должен хранить строковое значение в основном массиве символов, я пытался, но после сохранения значения обугленного размера массива изменен в зависимости от строкового значения ... Может ли один скажи мне, как решить эту проблему ..Как сохранить значение строки в массиве Char в java ..?

char[] uniqueID = new char[10]; 
String lUniqueID = mUniqueIdTxtFld.getText(); 
uniqueID = lUniqueID.toCharArray(); 

O/P:

lUniqueID=12D;  
it show in uniqueID[1,2,D]... 

Но мне нужно [1,2,D,,,,,,,,]

(то есть) фиксированный массив Char, это не должно измениться .. Любое одно предложение мне, что случилось на этом.

+0

char - примитивный тип. По умолчанию массив символов заполняется 0. Итак, вы получите «1», «2», «D», 0,0,0,0,0,0,0'. Зачем вам это нужно? Чего вы пытаетесь достичь? –

+0

thx для ответа .. я хочу сохранить строковое значение с фиксированным размером – Karthick

+0

Что я понимаю. Но почему? В чем смысл? –

ответ

3

Текущая проблема заключается в том, что при выполнении uniqueID = lUniqueID.toCharArray(); вы назначаете новый массив символов uniqueID, а не его содержимое в предыдущий массив.

То, чего вы хотите достичь, можно сделать, используя Arrays.copyOf.

char[] uniqueID = Arrays.copyOf(lUniqueID.toCharArray(), 10); 
1

Используйте этот метод

System.arraycopy

и скопировать символы из uniqueID = lUniqueID.toCharArray();
некоторых 10 символов длиной массива arr, который вы создали до фронта.

+0

Немного более громоздко, чем подсказка Arrays.copyOf от ZouZou, которая также соответствует требованиям «0s as padding». – hiergiltdiestfu

0

Вот фрагмент кода:

char[] uniqueID = new char[10]; 
String lUniqueID = mUniqueIdTxtFld.getText(); 
char[] compactUniqueID = lUniqueID.toCharArray(); 
System.arraycopy(compactUniqueID, 0, uniqueID, 0, compactUniqueID.length); 
1

Вы можете попробовать это:

public static void main(String arguments[]) { 
    char[] padding = new char[10]; 
    char[] uniqueID = mUniqueIdTxtFld.getText().toCharArray(); 
    System.arraycopy(uniqueID, 0, padding, 0, Math.min(uniqueID.length, padding.length)); 
    System.out.println(Arrays.toString(padding)); 
} 
+0

Это не даст 0s в качестве дополнения в целевом массиве, но вместо этого. – hiergiltdiestfu

+0

Черт. Я сделал это, чтобы убедиться, что есть пробелы. Grrrr ... – Harmlezz

+0

Отличный .. рабочий шарм – Karthick

0

Вы пробовали метод yourString.getChars (Params)?

lUniqueId.getChars(0,uniqueID.length,uniqueID, 0); 
+0

еще нет .. я попробую – Karthick

Смежные вопросы