如何设置要在处理中显示的字符串中最多的单词?

时间:2018-06-21 08:52:28

标签: java arrays text processing

目前,我有两个字符串,每个字符串中有5个字。每个人在某个时候都将类似于某种语言。我不需要的是屏幕上无限的单词,每种语言我只想要50个。如何为字符串中的单词设置最大值50?

这是当前代码:

int alpha = 1, delta = 1;
String [] wordsArabic = {
  "Chicken", "Mc", "Nugget", "Kippetje", "Lekker"
};

String [] wordsDutch = {
  "Vluchten", "Taal", "Nederlands", "Syrie", "Land"
};

void setup(){
  size( 1080, 1080);
  smooth();
  filter( THRESHOLD, 0.9);
  ellipseMode(CENTER);
}

void draw(){
  color(0, 0, 0);
  if (alpha == 0 || alpha == 255) { delta = -delta; }
  alpha += delta;
  fill( random(255), random(255), random(255), alpha);
  noStroke();
  textSize(random(10,30));
  text(wordsArabic [int (random(5))], random(height), random(width));
  text(wordsDutch [int (random(5))], random(height), random(width));
}

1 个答案:

答案 0 :(得分:2)

如果每种语言只需要50种语言,则应在代码中使用for循环。

此循环将代码重复执行50次:

for (int i = 0; i < 50; i++) {
  // pick one word from the language and display it 
}

您需要了解,处理过程会反复调用draw()方法

由于您是随机选择单词,并且Processing反复调用draw()方法,因此无法在for中放入draw()循环,否则它将无休止地调用for循环并无限期重复。我个人会将draw()中的所有代码放入setup()中。

另一个组织代码的建议是,应将其编写为一种显示单词的方法。 这是我的工作布局:

void displayWords(String[] language) {
    for (int i = 0; i < 50; i++) {
      // pick one word from the language and display it 
    }
}

然后,您可以轻松地致电displayWords(wordsArabic)displayWords(wordsDutch)

我希望这能回答您的问题,祝您好运!