Main idea of this program is to generate a tweet randomly (140 characters) of certain chars a-z + '.' + ',' + ';' + ':'among others...
Problem is, when i generate and add each char to the list everything looks fine (I added a line to check which char gets added). BUT whenever I print the result most of the time I get null+140other chars. Here's the code:
import java.util.Scanner;
import java.util.List;
import java.util.Arrays;
import java.util.ArrayList;
import java.util.Random;
public class P1{
String tweet;
List<Character> caracteres;
Random rand;
char nextChar;
int number;
public P1(){
caracteres = new ArrayList<Character>();
rand= new Random();
for(int i=97; i<=122; i++){
nextChar = new Character((char)i);
caracteres.add(nextChar);
}
caracteres.add(new Character((char)58));
//System.out.println("Added" + new Character((char)58));
caracteres.add(new Character((char)59));
//System.out.println("Added" + new Character((char)59));
caracteres.add(new Character((char)32));
//System.out.println("Added" + new Character((char)32));
caracteres.add(new Character((char)13));
//System.out.println("Added" + new Character((char)13));
caracteres.add(new Character((char)63));
//System.out.println("Added" + new Character((char)63));
caracteres.add(new Character((char)33));
//System.out.println("Added" + new Character((char)33));
caracteres.add(new Character((char)46));
//System.out.println("Added" + new Character((char)46));
caracteres.add(new Character((char)44));
//System.out.println("Added" + new Character((char)44));
}
public String generaTweet(){
for(int i=0; i<140; i++){
number = Math.abs((rand.nextInt())%34);
if(number == 13){
tweet+= '\n';
}
else{
tweet+= caracteres.get(number);
}
System.out.println(i + ". " + caracteres.get(number)); //added char
}
return tweet;
}
public static void main(String [] args){
P1 ejer = new P1();
System.out.println(ejer.generaTweet());
}
}