Java'da Dizeye Eşleme


89

Ben ne zaman System.out.println(map)Java, ben Stdout'a güzel bir çıktı elde edin. MapBir değişkendeki a'nın aynı dize gösterimini standart çıktıya karışmadan nasıl elde edebilirim ? Gibi bir şey String mapAsString = Collections.toString(map)?

Yanıtlar:


143

Kullanın Object#toString().

String string = map.toString();

Sonuçta davlumbazların altında da ne System.out.println(object)yapıyor . Haritaların biçimi konusunda açıklanmaktadır .AbstractMap#toString()

Bu haritanın dize gösterimini döndürür. Dize temsili, entrySetparantez ("{}") içine alınmış , haritanın görünümünün yineleyicisi tarafından döndürülen sırayla anahtar-değer eşlemelerinin bir listesinden oluşur . Bitişik eşlemeler "," (virgül ve boşluk) karakterleriyle ayrılır. Her bir anahtar / değer eşlemesi, anahtar olarak oluşturulur ve ardından bir eşittir işareti ("=") ve ardından ilişkili değer gelir. Anahtarlar ve değerler olarak dizelere dönüştürülür String.valueOf(Object).


3
Map'de F3'e toString () yöntemine basmak yanıltıcıdır! Sizi doğrudan Object.toString () 'e götürür - F3 ile etkileşime geçmeden önce düşünmelisiniz
Adam

2
@Adam, bunun nedeni, bu yöntemin elbette tanımlanmadığı arayüzde toString () 'i çağırmanızdır. IDE'niz gerçek çalışma zamanı uygulamasını bilmiyor. Onu suçlamamalısın.
Victor Dombrovsky

@VictorDombrovsky Herhangi bir yarı düzgün IDE (örn. IntelliJ, Eclipse, vb.), Bir arabirimde tanımlanan bir yöntemin gerçek uygulamasını izleyebilmelidir.
tekerlekli

@wheeler toString()içinde beyan edilmemiştir Mapve eğer öyleyse: Map21 uygulama sınıfı vardır. Gerçekte kullanılan uygulama yalnızca çalışma zamanında bilindiğinde hangisi diğerlerine tercih edilmelidir?
Gerold Broser

Ancak anahtar değerleri çift tırnak içine alınmaz, dolayısıyla birisi onu JSON olarak kullanmaya çalışırsa geçerli bir JSON değildir
P Satish Patro

11

Baskı formatını özelleştirmek istiyorsanız, google-collections (guava) Joiner sınıfını da kullanabilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.