0

# How is it possible to store incoming String data from a File into a 2D Array, by means of storing the initial incoming data into

+7

Here's an explanation of 2d arrays, hopefully helps for your problem/confusion. If not, please let me know. when you say arr[x] in a 2d array, this is an array. So you will receive the memory location of the array. -> A 2d array is an array of arrays. To get the info you need to say: arr[y][x] y is an array, pointing to the array x. array x is the array that actually contains the values. So if I said arr then I'd get the values from the array at index 1 pointing to the array at index 2. So you'd have to print arr[whichArray][indexYouLoadedTheStringsOnto]. If you want to print everything you need a for loop to go over the [whichArray] array.

+7

hm.. String modify = interim.get(i); You seem to be constantly grabbing the same string in the array from inside this for loop: for (int j=0; j < conversions.length; j++) also, a potential problem I spotted: for (int k=j; k < conversions[j].length; k++) { conversions[j][k] = tk2; } This looks to me like your filling an entire array with one value, are you sure need to do that¿ Or, are all arrays different sizes? You also don't fill the entire array. If j is 2 then k = j, so k = 2. conversions = tk2. But what was conversions ? // (it's null) Perhaps this is what your looking for, or perhaps similar? // note* i moved some variables around String modify, tk1, tk2; int key; for (int i=0; i < interim.size() ; i++) { modify = interim.get(i); key = modify.indexOf(';'); tk2 = modify.substring(key+1); tk1 = modify.substring(0,key); for (int j=1; j < conversions.length; j++) { conversions[i] = tk1; conversions[i][j] = tk2; // assuming all i arrays are same size though } } // the printing code looks fine, except perhaps: for (int k=i; k < conversions[i].length; k++) { System.out.print(conversions[i][k] + " "); } // etc... k can start at 0, otherwise your not really printing the whole array. Hopefully something here helps! xD

+1

I finally got it with a bit more playing around! Thank you for the insight. I ended up only using one variable for the iteration process and the two other variables I used as constants to represent what inner array the particular values were to be assigned to. Again, thank you, b/c I would not have figured this out otherwise!!!!

0

Thank you, that helped me a bit. I'm printing out words now instead of memory addresses, however the only data being stored is the very last line of the txt file. Here's my code that produces that output: for (int i=0; i < interim.size() ; i++) { for (int j=0; j < conversions.length; j++) { String modify = interim.get(i); System.out.println(modify); //check if loaded properly int key = modify.indexOf(';'); String tk2 = modify.substring(key+1); String tk1 = modify.substring(0,key); System.out.println(tk1); System.out.println(tk2); conversions[j] = tk1; for (int k=j; k < conversions[j].length; k++) { conversions[j][k] = tk2; } } } for (int i=0; i < conversions.length; i++) { for (int k=i; k < conversions[i].length; k++) { System.out.print(conversions[i][k] + " "); } System.out.println(""); } not quite sure where I'm going wrong. Though looking at a 2d array as "an array of arrays" is a lot more understandable than the way its taught, as a RxC matrix, thank you. So I have tried a few variations of the indexes and placements of where the loading is happening, but I can still only manage to capture the very last line of the txt file. I'm missing something, but have no idea what.