2016-04-11 28 views
2

İçinde rastgele bir sayı üreten bir dizi, bunları bir diziye dönüştüren başka bir dizi ve bu diziyi kullanmaya çalışan ve her birinde kaç karakter bulunduğunu belirten sonuncu bir histogram programı yapıyorum [] dizi. Benim sorunum, her dizi elemanında kaç karakterin sayılacağını ve bu sayının üstesinden gelmenin bir yolunu bulamam. .length işlevini kullanmaya çalışıyorum ama çalışmıyor gibi görünüyor. Bunu yapmanın başka bir yolu var mı? İşte kodum. Benim ana metodumdan önce benim problemim son metodum.Bu dizi çıktısını nasıl düzeltirim?

package arrayhistogram; 

/** 
* 
* @author Dominique 
*/ 
public class ArrayHistogram { 

    public static int randomInt(int low, int high){ 
double x =Math.random()* (high - low)+low; 
    int x1=(int)x; 

    return x1; 
} 
    public static int[] randomIntArray(int n){ 
     int[] a = new int[n]; 
for (int i=0; i<n; i++) { 
a[i] = randomInt(-5, 15); 
} 
return a; 
    } 
    public static int[] arrayHist() { 
int[] x=randomIntArray(30); 
     for (int i = 0; i < x.length; i++) { 

System.out.println(x[i].length); 
} 

return x;  
} 

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


    } 

} 
+1

ile

System.out.println(x[i].length); 

http://stackoverflow.com/questions/1306727/way-to-get- – khuderm

+0

'System.out.println (x [i])' deki basamak sayısı-sayısı? –

+1

@TimBiegeleisen OP'nin sayı sayısını – khuderm

cevap

0

olan yerine

System.out.println(Integer.toString(x[i]).length()); 
+0

istediğini düşünüyorum. Çok teşekkür ederim. Bu mükemmel çalıştı! –

0

bir int üzerinde hiçbir length özellik yok. int'daki basamak sayısını almak için bunu kullanabilirsiniz.

String.valueOf(x[i]).length() 

bu ilk bir String içine int dönüştürür ve sonra bu String uzunluğunu verir. Örnek 123 => "123", uzunluğu 3

İlgili konular