2016-03-20 9 views
0

(5,6,7,8) gibi bir kullanıcı girdisi dizesini alıp dizilere dönüştüren bir program yazmaya çalışıyorum. {5,6,7,8}. Döngüsünü bulmakta zorlanıyorum. Herhangi bir yardım harika olurdu. Bu noktadaDize dönüştürücü sınıfını kullanarak tamsayıların arraylistine dönüştürme

String userString = "" 
int[] userInt = new int[userString.length()]; 

zaman userString.length() = 0 bu senin şey tutamam bir dizi başlatmasını int[] userInt = new int[0] yazma aynıdır bu yüzden bir şey içeren doesnt beri:

String userString = ""; 
ArrayList<Integer> userInts = new ArrayList<Integer>(); 

System.out.println("Enter integers seperated by commas."); 
userString = in.nextLine(); 

for (int i = 0; i < userString.length(); i++) { 
    userInts.add(new Integer(in.nextInt())); 
} 
+0

"Sarıcı sınıf" ile ne demek istiyorsun? – shmosel

cevap

1

listenizi tek haneli sayılar oluşuyorsa, yaklaşımınız işe yarayabilir gibi sonuç dizisi ayrılırken önce dizede kaç basamak anlamaya ihtiyacımız dışında bir arrayList, görünürdü.

Sayıları birden çok basamak ile işlemek istiyorsanız, önce virgülle String.split kullanın. Bu size kaç sayı ayırmanız gerektiğini söyler. Diziler dizisinden geçtikten sonra Integer.parseInt yöntemini kullanarak her bir sayıyı ayrıştırın.

Not: İstenmeyen kodları bu şekilde göstermemek için hiçbir kod göstermemekteim. Bu ödevi dokümantasyon yoluyla okuyarak tamamlamak için yeterli bilgiye sahip olduğunuz görülüyor.

+0

haha ​​bu patron takdir – Harry

1

hatları inceleyelim.

Ayrıca bu bir arrayList dizisidir.

ArrayList<Integer> myList = new ArrayList()<Integer>; 
1

inScanner içindir.

Durmak için bir koşul görmüyorum. Bunu mutlu olduğun sürece yapmaya devam etmek istediğini kabul edeceğim.

List<Integer> arr = new ArrayList<Integer>(); 

while(in.hasNext()) 
    arr.add(in.nextInt()); 

Ve

int count = 10; 
while(count-- > 0) 
    arr.add(in.nextInt()); 
0

farklı bir giriş biçimi önerebilir .. sen 10 numara alacak biliyorum demek? İlk giriş satırı bir tam sayı N'den oluşacaktır. Sonraki satırda N boşluklu tamsayılar bulunur.

5 
3 20 602 3 1 

önemsiz bu girdiyi kabul etmek için kod ve siz sadece geçerli bir tamsayı değerlerini okumak sağlamak için java.util.Scanner#nextInt() yöntemi kullanabilirsiniz.

Bu yaklaşım, bir String kabul etmek ve onu doğrulamak ve ayrıştırmak yerine, girdiyi girdikçe doğrulamak için ek yarar sağlar. String yaklaşımı, ele alınması gereken çok sayıda kenar durumu sunar.