2013-09-25 2 views
0

J'ai besoin d'obtenir la valeur de la chaîne ci-dessous en 2 variables.Sous-chaîne avec longueur dynamique

Entrée

6,3--jour des soins complets

Sortie prévue:

var price=6.3; //The input is dynamic.Cannot get fixed length 
var serviceKey="full-day-care"; 

Comment puis-je faire cela? Substring n'aide pas ici.

+1

Avez-vous essayé String.Split? –

+4

Quel est le modèle ici? Est-ce que c'est d'abord «-' char? –

+0

@ SonerGönül Oui – Sampath

Répondre

3

Vous pouvez utiliser String.Split et String.Substring méthodes similaires;

string s = "6.3-full-day-care"; 
int index = s.IndexOf('-'); //This gets index of first '-' character 

var price = s.Substring(0, index); 
var serviceKey = s.Substring(index + 1); 

Console.WriteLine(price); 
Console.WriteLine(serviceKey); 

La sortie sera;

6.3 
full-day-care 

Voici un DEMO.

+0

pouvez-vous m'en dire plus sur l'éditeur de démo que vous avez utilisé? – Sampath

+0

@Sampath Je commanly utiliser ['Ideone'] (http://ideone.com/) qui supporte beaucoup de langages de programmation. Jette un coup d'oeil. –

+0

Merci pour le soutien. Cela fonctionne. – Sampath

2

vous pouvez faire comme:

var val = "6.3-full-day-care"; 
var index = val.IndexOf("-"); //first occuarance of - 

var price =double.Parse(val[index]); 
var serviceKey = val.Substring(index); 

Juste pour vous donner idée. Il est Beter naturellement utiliser double.TryParse(..) sur price

double price = 0; 
double.TryParse(val[index], out prince, System.Globalization.InvariantCulture); 
+3

mieux *. De plus, '= 0' est redondant puisqu'il s'agit d'un paramètre' out' de 'TryParse' (aussi mal orthographié comme' prince' dans la seconde instruction) – Default

0

Cela devrait fonctionner

var s = "6.3-full-day-care"; 
var index = s.IndexOf('-'); 
var price = s.Substring(0, index); 
var serviceKey = s.Substring(index + 1); 
0

Si le prix et la clé sont toujours séparés par un '-':

string s = "6.3-full-day-care"; 
int separatorIdx = s.IndexOf('-'); // get idx of first '-' 

// split original string 
string price = s.Substring(0, separatorIdx); 
string serviceKey = s.Substring(separatorIdx+1, s.Length); 
Questions connexes