best way to process data received via XBEE?

Sorry but it may not be difficult on a technical side, but we need to be accurate on words:

PaulS:
In the serial buffer, you might find "1458328543". Does that represent 14, 583, 28, 543 or does it represent 145, 83, 285, 43? Or, does it represent some other set of values?
Of course, because a byte fit in an int. There was no reason to use a bigger moving van to hold the marble.

ok so if i got your right, the serial buffer has every data comming from processing without any space in between.
so i need to find a solution, using functions like serial.ReadBytesUntil() or anything else.

The first idea i come with is:
i set a little Timeout on the arduino serial side, so that it does not search in the buffer for too long, and i try to be very accurate on both side ( processing/arduino concerning the timing)
on the arduino serial again, i use serial.ReadBytesUntil(character, buffer, length) (character to find, length will be "3" as i want integer like 100,999, am i right? ; still don't see how i have to declare the "buffer" )

*on my processing sketch
( the problem only concerns sending data depending of the sticks, as i would like to use this to have a proportionnal answer )
everytime a stick is pressed i write to the xbee something like ('Y') for instance

if ((FloatToInt ( ValYLeft ) < - 150 )){ Val Y left is the value got from the Y Stick, and 150 is the value of security so that i do not
println( FloatToInt( -ValYLeft )); continously send this value. "FloatToInt" is my converting program for the serial process
XBeeSerial.write ('y'); // by writing an y i indicate the next data concerns an Y axis
delay(10);
XBeeSerial.write('p'); // that's the only way i found to indicate it's gonna be a positive Y axis, which means on the arduino side, we will
delay(10); // have to wait again for another char
XBeeSerial.write ( FloatToInt ( -ValYLeft ) ) ; // this is the value coresponding to the pressed stick i would like to read on the arduino
delay(50);
}

on the arduino side

if ( c == 'y' ){ //remember char c = Serial.read();
Serial.println("y stick"); // this works everytime
delay(10);
c = Serial.read();

if ( c == 'p'){ // it's gonna be a positive y axis
data = Serial.read ();
Serial.println( " Y Up: "+data); //this does not work
// do something
}

if ( c == 'n' ) { // a negative one
data = Serial.read ();
Serial.println("Y Down: "+data ); //this does not work
// do something
}
} // end of process for Y axis

To solve it i thought adding another char 's' that would represent the end of processing-xbee sending data
for instance:

if ((FloatToInt ( ValYLeft ) < - 150 )){
println( FloatToInt( -ValYLeft ));
XBeeSerial.write ('y');
delay(10);
XBeeSerial.write('p');
delay(10);
XBeeSerial.write ( FloatToInt ( -ValYLeft ) ) ;
delay(10);
XBeeSerial.write('s'); // i'm adding this so the arduino can see where it ends
delay(50);
}

and on the arduino side i use ReadBytesUnil ( s , buffer , 3 ) ; 's' is the char causing the stop; 3 is the length ( integers from 150 to 999 );
but still don't see how you would declare buffer