static public String toString(StructureData sdata) throws IOException { CharArrayWriter carray = new CharArrayWriter(1000); PrintWriter pw = new PrintWriter(carray); for (StructureMembers.Member m : sdata.getMembers()) { Array memData = sdata.getArray(m); if (memData instanceof ArrayChar) pw.print(((ArrayChar) memData).getString()); else printArray(memData, pw); pw.print(','); } return carray.toString(); }
/** * Create a String out of this rank two ArrayChar object. * This treats the ArrayChar as a 1D array of Strings. * If there is a null (0) value in the ArrayChar array, the String will end there. * The null is not returned as part of the String. * * @param index index into 1D String array, must be < getShape(0). * @return String value * @throws IllegalArgumentException if rank != 2 */ public String getString(int index) { Index ima = getIndex(); return getString(ima.set(index)); }
/** * Set the ArrayChar values from the characters in the String. Rank must be 2. * This treats the ArrayChar as a 1D array of Strings. * If String val longer than ArrayChar, ignore extra chars; if shorter, fill with 0. * <p/> * <p><code> * String[] val = new String[n]; * ArrayChar ca; * Index ima = ca.getIndex(); * for (int i=0; i<n; i++) * ca.setString(i, val[i]); * </code> * * @param index index into 1D String array, must be < getShape(0). * @param val set chars from this sString */ public void setString(int index, String val) { int rank = getRank(); if (rank != 2) throw new IllegalArgumentException("ArrayChar.setString rank must be 2"); Index ima = getIndex(); setString(ima.set(index), val); }
private static Array convertToChar(Variable newVar, Array oldData) { ArrayChar newData = (ArrayChar) Array.factory(DataType.CHAR, newVar.getShape()); Index ima = newData.getIndex(); IndexIterator ii = oldData.getIndexIterator(); while (ii.hasNext()) { String s = (String) ii.getObjectNext(); int[] c = ii.getCurrentCounter(); for (int i = 0; i < c.length; i++) ima.setDim(i, c[i]); newData.setString(ima, s); } return newData; }
ima = ac.getIndex(); String val = "Testing 1-2-3"; for (j = 0; j < val.length(); j++) { ac.setChar(ima.set(j), val.charAt(j)); ac2.setString("Two pairs of ladies stockings!"); ncfile.write(sVar2, origin1, ac2); } catch (IOException e) { ima = ac2.getIndex(); ac2.setString(ima.set(0), "No pairs of ladies stockings!"); ac2.setString(ima.set(1), "One pair of ladies stockings!"); ac2.setString(ima.set(2), "Two pairs of ladies stockings!"); ncfile.write("names", origin, ac2); } catch (IOException e) { ima = ac2.getIndex(); ac2.setString(ima.set(0), "No pairs of ladies stockings!"); ac2.setString(ima.set(1), "One pair of ladies stockings!"); ac2.setString(ima.set(2), "Two pairs of ladies stockings!"); ncfile.write(namesVar, origin, ac2); } catch (IOException e) { ac2.setString(0, "0 pairs of ladies stockings!"); ac2.setString(1, "1 pair of ladies stockings!"); ac2.setString(2, "2 pairs of ladies stockings!"); ncfile.write("names2", origin, ac2); } catch (IOException e) {
public void testStringPutGet() { System.out.println("testString: testStringPutGet"); // write ima.set0(0); A.setString(ima, "hey"); ima.set0(1); A.setString(ima, "there"); ima.set0(2); A.setString(ima, "yo"); ima.set0(3); A.setString(ima, "I"); // read ima.set0(0); assert(A.getString(ima).equals("hey")); ima.set0(1); assert(A.getString(ima).equals("the")); ima.set0(2); assert(A.getString(ima).equals("yo")); ima.set0(3); assert(A.getString(ima).equals("I")); }
int[] origin1 = new int[1]; ArrayChar ac = new ArrayChar.D1(shape[0]); ima = ac.getIndex(); String val = "Testing 1-2-3"; for (j = 0; j < val.length(); j++) ac.setChar(ima.set(j), val.charAt(j)); try { ArrayChar ac2 = new ArrayChar.D1(len); ac2.setString("Two pairs of ladies stockings!"); writer.write(v, ac2); } catch (IOException e) { try { ArrayChar ac2 = new ArrayChar.D2(shape[0], shape[1]); ima = ac2.getIndex(); ac2.setString(ima.set(0), "No pairs of ladies stockings!"); ac2.setString(ima.set(1), "One pair of ladies stockings!"); ac2.setString(ima.set(2), "Two pairs of ladies stockings!"); writer.write(v, origin, ac2); } catch (IOException e) { ac2.setString(0, "0 pairs of ladies stockings!"); ac2.setString(1, "1 pair of ladies stockings!"); ac2.setString(2, "2 pairs of ladies stockings!"); v = writer.findVariable("names2"); writer.write(v, origin, ac2);
/** * Make this into the equivilent 1D ArrayObject of Strings. * * @return 1D ArrayObject of Strings */ public ArrayObject make1DStringArray() { int nelems = (getRank() == 0) ? 1 : (int) getSize() / indexCalc.getShape(getRank()-1); Array sarr = Array.factory(String.class, new int[]{nelems}); IndexIterator newsiter = sarr.getIndexIterator(); ArrayChar.StringIterator siter = getStringIterator(); while (siter.hasNext()) { newsiter.setObjectNext(siter.next()); } return (ArrayObject) sarr; }
ArrayChar data = new ArrayChar(new int[] { 2, 19 }); IndexIterator iter = data.getIndexIterator(); int count = 0; while (iter.hasNext()) { ArrayChar dataC = (ArrayChar) dataRead; assert dataC.getString(0).equals("2005-04-11_12:00:00"); assert dataC.getString(1).equals("2005-04-11_13:00:00");
public String toString() { StringBuilder sbuff = new StringBuilder(); StringIterator ii = getStringIterator(); int count = 0; while (ii.hasNext()) { if (count > 0) sbuff.append(","); String data = ii.next(); sbuff.append(data); count++; } return sbuff.toString(); }
/** * Create an ArrayChar from an ArrayObject of Strings. * * @param values ArrayObject of String * @return equivilent ArrayChar, using maximum length of String. Unused are zero filled. */ public static ArrayChar makeFromStringArray(ArrayObject values) { // find longest string IndexIterator ii = values.getIndexIterator(); int strlen = 0; while (ii.hasNext()) { String s = (String) ii.next(); strlen = Math.max(s.length(), strlen); } return makeFromStringArray(values, strlen); }
static ArrayChar factory(Index index, char[] storage) { if (index instanceof Index0D) { return new ArrayChar.D0(index, storage); } else if (index instanceof Index1D) { return new ArrayChar.D1(index, storage); } else if (index instanceof Index2D) { return new ArrayChar.D2(index, storage); } else if (index instanceof Index3D) { return new ArrayChar.D3(index, storage); } else if (index instanceof Index4D) { return new ArrayChar.D4(index, storage); } else if (index instanceof Index5D) { return new ArrayChar.D5(index, storage); } else if (index instanceof Index6D) { return new ArrayChar.D6(index, storage); } else if (index instanceof Index7D) { return new ArrayChar.D7(index, storage); } else { return new ArrayChar(index, storage); } }
public void addMemberString(String name, String desc, String units, String val, int max_len) { StructureMembers.Member m = members.addMember(name, desc, units, DataType.CHAR, new int[] { max_len}); Array data = ArrayChar.makeFromString(val, max_len); setMemberData(m, data); }
/** * Create an ArrayChar from a String * * @param s String * @param max maximum length * @return equivilent ArrayChar */ public static ArrayChar makeFromString(String s, int max) { ArrayChar result = new ArrayChar.D1( max); for (int i=0; i<max && i<s.length(); i++) result.setChar( i, s.charAt(i)); return result; }
public Object getObject(int index) { return getChar(index); }
private Array convertToChar(Variable newVar, Array oldData) { ArrayChar newData = (ArrayChar) Array.factory(DataType.CHAR, newVar.getShape()); Index ima = newData.getIndex(); IndexIterator ii = oldData.getIndexIterator(); while (ii.hasNext()) { String s = (String) ii.getObjectNext(); int[] c = ii.getCurrentCounter(); for (int i = 0; i < c.length; i++) ima.setDim(i, c[i]); newData.setString(ima, s); } return newData; }
ima = ac.getIndex(); String val = "Testing 1-2-3"; for (j = 0; j < val.length(); j++) ac.setChar(ima.set(j), val.charAt(j)); ac2.setString("Two pairs of ladies stockings!"); v = writer.findVariable("svar2"); writer.write(v, origin1, ac2); ima = ac2.getIndex(); ac2.setString(ima.set(0), "No pairs of ladies stockings!"); ac2.setString(ima.set(1), "One pair of ladies stockings!"); ac2.setString(ima.set(2), "Two pairs of ladies stockings!"); v = writer.findVariable("names"); writer.write(v, origin, ac2); ac2.setString(0, "0 pairs of ladies stockings!"); ac2.setString(1, "1 pair of ladies stockings!"); ac2.setString(2, "2 pairs of ladies stockings!"); v = writer.findVariable("names2"); writer.write(v, origin, ac2); String sval = achar.getString(achar.getIndex()); assert sval.equals("Testing 1-2-3") : sval; assert (ac2.getString().equals("Two pairs of ladies stockings!")); ima = ac3.getIndex();