gpt4 book ai didi

java - ArrayList 在第一个元素上打印空字符

转载 作者:行者123 更新时间:2023-11-30 06:12:45 25 4
gpt4 key购买 nike

这个程序的主要思想是随机生成一条由特定字符 a-z + '.' 组成的推文(140 个字符) + ',' + ';' + ':'等等...

问题是,当我生成每个字符并将其添加到列表时,一切看起来都很好(我添加了一行来检查添加了哪个字符)。但是每当我打印结果时,大多数时候我都会得到 null+140other 字符。这是代码:

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());
}

}

最佳答案

这是因为您从未初始化字段tweet。您的构造函数应如下所示:

public P1(){
tweet = "";
//....
}

关于java - ArrayList 在第一个元素上打印空字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32576694/

25 4 0