tags:

views:

31

answers:

3

JavaME is quite sparse on features. Please list your favourite utility functions for making using it more like using proper Java, one per answer. Try to make your answers specific to Java ME.

A: 

Splitting a string

static public String[] split(String str, char c)
{
    int l=str.length();
    int count = 0;
    for(int i = 0;i < l;i++)
    {
      if (str.charAt(i) == c)
      {
        count ++;    
      }
    }
    int first = 0;
    int last = 0;
    int segment=0;
    String[] array = new String[count + 1]; 
    for(int i=0;i<l;i++)
    {
        if (str.charAt(i) == c)
        {
            last = i;
            array[segment++] = str.substring(first,last);
            first = last;

        }
        if(i==l-1){
            array[segment++] = str.substring(first,l);
        }
    }
    return array;
}
Casebash
A: 

Read a line from a reader. See also this question.

public class LineReader{
 private Reader in;
 private int bucket=-1;
 public LineReader(Reader in){
  this.in=in;
 }

    public boolean hasLine() throws IOException{
     if(bucket!=-1)return true;
     bucket=in.read();
     return bucket!=-1;
    }

 //Read a line, removing any /r and /n. Buffers the string
 public String readLine() throws IOException{
  int tmp;
  StringBuffer out=new StringBuffer();
  //Read in data
  while(true){
   //Check the bucket first. If empty read from the input stream
   if(bucket!=-1){
    tmp=bucket;
    bucket=-1;
   }else{
    tmp=in.read();
    if(tmp==-1)break;
   }
   //If new line, then discard it. If we get a \r, we need to look ahead so can use bucket
   if(tmp=='\r'){
    int nextChar=in.read();
    if(tmp!='\n')bucket=nextChar;//Ignores \r\n, but not \r\r
    break;
   }else if(tmp=='\n'){
    break;
   }else{
    //Otherwise just append the character
    out.append((char) tmp);
   }
  }
  return out.toString();
 }
}
Casebash
A: 

Small Logging Framework

MicroLog http://microlog.microsuite.org/

Azlam
This would be better as an answer to: [this question](http://stackoverflow.com/questions/2422555/java-me-libraries) instead
Casebash
oh yeah! i didnt read the question properly!
Azlam