Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * CountingString example
- * by Daniel Shiffman.
- *
- * This example demonstrates how to use a IntDict to store
- * a number associated with a String. Java HashMaps can also
- * be used for this, however, this example uses the IntDict
- * class offered by Processing's data package for simplicity
- * and added functionality.
- *
- * This example uses the IntDict to perform a simple concordance
- * http://en.wikipedia.org/wiki/Concordance_(publishing)
- *
- */
- // An IntDict pairs Strings with integers
- IntDict concordance;
- // The raw array of words in
- String[] tokens;
- int counter = 0;
- void setup() {
- size(640, 360);
- concordance = new IntDict();
- // Load file and chop it up
- String[] lines = loadStrings("dracula.txt");
- String allText = join(lines, " ").toLowerCase();
- tokens = splitTokens(allText, " ,.?!:;[]-\"");
- // Create the font
- textFont(createFont("SourceCodePro-Regular.ttf", 24));
- }
- void draw() {
- background(51);
- fill(255);
- // Look at words one at a time
- if (counter < tokens.length) {
- String s = tokens[counter];
- counter++;
- concordance.increment(s);
- }
- // x and y will be used to locate each word
- float x = 0;
- float y = 48;
- concordance.sortValues();
- String[] keys = concordance.keyArray();
- // Look at each word
- for (String word : keys) {
- int count = concordance.get(word);
- // Only display words that appear 3 times
- if (count > 3) {
- // The size is the count
- int fsize = constrain(count, 0, 48);
- textSize(fsize);
- text(word, x, y);
- // Move along the x-axis
- x += textWidth(word + " ");
- }
- // If x gets to the end, move y
- if (x > width) {
- x = 0;
- y += 48;
- // If y gets to the end, we're done
- if (y > height) {
- break;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement