简体   繁体   中英

Hi, trying to print a certain amount of character based on array values. Java

so my question is how could I print a certain amount of characters based on a array value?

So currently I have an array declared globally like this

static float timesOccured [] = {5,3,7,3,1};

In a method called draw I've tried a few things to try and get it so the output would be something along the line like this

|||||

|||

|||||||

|||

|

Could anyone help me out? Much appreciated.

You would need to use nested for loops as I have done below:

for (int i = 0; i < timesOccured.length; i++) {
     for (int j = 0; j < timesOccured[i]; j++) {
        // print characters here
     }
}

Loop through the timesOccured array and get each entry; and use the entry (ie timesOccured[i] ) to print your lines in the nested for loop.

I hope this helps.

public class PrintChar {

static float timesOccured [] = {5,3,7,3,1};

public static void draw(){

    for(int i=0; i<timesOccured.length;i++){

        for(int j=0; j< timesOccured[i]; j++){
            System.out.print("!");
        }

        System.out.println();
    }
}

public static void main(String[] args) {
    draw();
}

}

Here are seven ways to do it:

import org.apache.commons.lang.StringUtils;
import com.google.common.base.Strings;

public class StringRepeat {
  static int timesOccured[] = { 5, 3, 7, 3, 1 };
  static String s = "|";
  static String t = "||||||||||||||||||";

  public static String repeat(int j) {
    return (t.substring(0, j));
  }

  public static void main(String[] args) {

    System.out.println("Using native Java String.substring");
    for (int i = 0; i < timesOccured.length; i++) {
      System.out.println(repeat(timesOccured[i]));
    }

    System.out.println("\nUsing native Java char.replace");
    for (int i = 0; i < timesOccured.length; i++) {
      System.out.println(new String(new char[timesOccured[i]]).replace("\0", s));
    }

    System.out.println("\nUsing native Java String.format.replace");
    String result = "";
    for (int i = 0; i < timesOccured.length; i++) {
      System.out.println(String.format(String.format("%%0%dd", timesOccured[i]), 0).replace("0",s));
    } 
    System.out.println(result);

    System.out.println("\nUsing native Java StringBuilder.append");
    for (int i = 0; i < timesOccured.length; i++) {
      StringBuilder sb = new StringBuilder();
      for (int j = 0; j < timesOccured[i]; j++) { sb.append(s); };
      System.out.println(sb.toString());
    }

    System.out.println("\nUsing native Jave double for loops");
    for (int i = 0; i < timesOccured.length; i++) {
      String u = "";
      for (int j = 0; j < timesOccured[i]; j++) {
        u = u + s;
      }
      System.out.println(u);
    }

    System.out.println("\nUsing org.apache.commons.lang.StringUtils.repeat");
    for (int i = 0; i < timesOccured.length; i++) {
      System.out.println(StringUtils.repeat(s, timesOccured[i]));
    }

    System.out.println("\nUsing com.google.common.base.Strings.repeat");
    for (int i = 0; i < timesOccured.length; i++) {
      System.out.println(Strings.repeat(s, timesOccured[i]));
    }

  }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM