Processing: Varie ed Eventuali

se hai seguito il mio codice l'oggetto(variabile per capirci, ma io non ve l'ho detto :zipper_mouth_face:) ris è di tipo String, quindi documentazione java:
http://docs.oracle.com/javase/6/docs/api/index.html?overview-summary.html
classe String:
http://docs.oracle.com/javase/6/docs/api/java/lang/String.html
e tra i metodi troviamo:

length
public int length()
Returns the length of this string. The length is equal to the number of Unicode code units in the string.
Specified by:
length in interface CharSequence
Returns:
the length of the sequence of characters represented by this object.

quindi la correzione è:

ris = ris.substring(0, ris.length()-1);

edit: consiglio una bella lettura delle classi File, BufferInputStream (e Output), ObjectInputStram (e Output), Socket, Thread (very hard! programmazione parallela!)

da notare che int, float, double, long hanno anche una classe che li rappresenta Integer, Float e Double, che mette a disposizione un sacco di utility. Però fai attenzione che NON sono la stesa cosa, int, float, double e long sono un retaggio per non far spaventare troppo chi arriva dal C, e per sprecare meno RAM, cosa di cui possiamo fregarcene allegramente sui sistemi moderni per la nostra tipologia di applicazioni