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.