2016-04-12 26 views
4

Ich muss Array von int s in String konvertieren. Folgender Code, es zu tun, aber in Folge Ich erhalte unerwünschte Symbole []Wie konvertiert man ein Array von Ints in einen String?

import std.stdio; 
import std.conv; 

void main() 
{ 
    int [] x = [1,3,4,6]; 
    string s = to!string(x); 
    writeln(s); 
} 

Ausgabe: [1, 3, 4, 6] Wie ich Klammern ohne Hack mit replace entfernen?

+0

Man könnte es immer nur abschneiden können ... –

+0

@ AdamD.Ruppe Und sieht aus wie könnte es schneller sein als die vorgeschlagene Lösung mit 'map'. – sigod

+0

Ja, die Karte würde eine separate Zuweisung für jedes Element tun, während die einzige 'to' call ich glaube, tut alles auf einmal. Single Call plus Slice ist sicherlich der einfachste Weg und möglicherweise der schnellste ... obwohl die "Format" -Lösung auch wettbewerbsfähig und anpassungsfähiger sein sollte. –

Antwort

4

Sie können es wie folgt zum Beispiel tun:

import std.stdio; 
import std.conv; 
import std.algorithm; 

void main() 
{ 
    int [] x = [1,3,4,6]; 
    writeln(x.map!(to!string).joiner(", ")); 
} 
3

Sie std.format

import std.format; 
import std.stdio; 

void main() 
{ 
    auto res = format("%(%s, %)", [1,2,3,4,5]); 
    writeln(res); // output: 1, 2, 3, 4, 5 
} 
Verwandte Themen