2014-01-31 6 views
-4

Есть способ сократить ст. System.out.println() как метод?Более короткая версия Java System.out.println()

System.out.println() = short(); 

Так что я мог бы изменить это основной метод для ...

package Array; 
import java.util.Random; 

public class Array { 
    public static void main(String args[]) { 
     data(); 
     a(); 
     random(); 
     a(); 
     array(); 
     a(); 
     rows(); 
     a(); 
     System.out.println("average " + average(45,15,15,48,97,45)); 

    } 
    static void a() {System.out.println();} 
    static void data() { 
     int array[] = {1,5,6}; 
     int alength = array.length; 
     System.out.println(" Location\tData"); 
     for(int i=0;i<alength;i++) { 
      System.out.println(" " + i + "\t\t" + array[i]); 
     } 
    } 
    static void random() { 
     Random rdm = new Random(); 
     int freq[] = new int[7]; 

     for(int i=1;i<1000;i++) { 
      ++freq[1+rdm.nextInt(6)]; 
     } 
     System.out.println("Face\tFrequency"); 
     int frequence = freq.length; 
     for(int face=1;face<frequence;face++) { 
      System.out.println(face+"\t"+freq[face]); 
     } 
    } 
    static void array() { 
     String po[] = {"lala","po","tinkiwinki","disty"}; 
     for(String lala: po) { 
      System.out.print(lala + " "); 
     } 
     System.out.println(); 
    } 
    static void rows() { 
     int arrays[][]= {{1,5,78,15},{45,67},{875,15687,158,4515,23,2,2}}; 

     for(int i=0;i<arrays.length;i++) { 
      for(int j=0;j<arrays[i].length;j++) { 
       System.out.print(arrays[i][j]+"\t"); 
      } 
      System.out.println(); 
     } 
    } 
    static int average(int...numbers) { 
     int total=0; 
     for(int x:numbers) 
      total += x; 
     return total/numbers.length; 
    } 
} 

class time { 
    int h, m, s; 
    void setTime(int hour,int minute,int second) { 
     h = ((hour>=0 && hour<=24) ? hour : 0); 
     m = ((minute>=0 && minute<=60) ? minute : 0); 
     s = ((second>=0 && second<=60) ? second : 0); 
    } 

Это основной метод

public class Array { 
     public static void main(String args[]) { 
      a(data()); 
      a(random()); 
      a(array()); 
      a(rows()); 
      a("average " + average(45,15,15,48,97,45)); 

Он печатает этот

 Location Data 
    0  1 
    1  5 
    2  6 

Face Frequency 
1 154 
2 186 
3 161 
4 168 
5 179 
6 151 

lala po tinkiwinki disty 

1 5 78 15 
45 67 
875 15687 158 4515 23 2 2 

average 44 
+0

Что случилось с тем, что у вас есть? Вы просто делегируете. –

+0

Выполнение этого на Java 5/6/7, скорее всего, сделает ваш код более грязным. –

+0

Почему это улучшение, не является() полностью отдельной функцией от того, что вы переходите к ней? В этом случае он печатает новую строку, которая, кажется, является тем, что вы хотите –

ответ

3

Так что вы хотите(), чтобы напечатать новую строку, затем что передано?

static void a(Callable<T> f) { 
    System.out.println(); 
    f.call(); 
} 

Я думаю, что это должно быть сделано.

Если вы не хотите возиться с отзывной:

Вместо того, чтобы ваши методы возврата аннулируются и печати, которые они возвращают строку.

Тогда есть взять строку в качестве аргумента и напечатать строку, за которой следует строка, переданная в.

1

Ваш код почти заставляет меня плакать.

Но я не уверен, что вы пытаетесь достичь здесь. Я действительно не понимаю, что случилось с System.out.println(); Попробуйте использовать метод toString() в вашем классе массива и попробуйте использовать ориентированный на объект подход.

1

В Eclipse вы можете ввести Syso и нажмите Ctrl + Space в то же время, если вы хотите, чтобы сделать его проще набрать его.

+0

... или 'sysout' вместо' syso' – Ben

1

Я думаю, вы должны использовать объектно-ориентированную практику:

  • ваших данные, случайный, массив, и т.д. В случае если классы
  • классов с настраиваемой ToString() или prettyPrint() метод

Так ваша цель что-то вроде:

Data data = new Data(); 
System.out.println(data.toString()); 

Но я не уверен, что вопрос действительно о ...