2015-04-17 2 views
0

Я хочу разбить введенные данные, а затем проверить каждую строку, так что, если это число, которое оно вталкивается в массив массивов, а если нет, то оно попадает в имя Array. Я новичок, и я понятия не имею, что я делаю. до сих пор у меня есть следующее:Как разбить текст на разные значения?

var lines:Array = String(event.target.data).split(":"); 

var linesNum:int = lines.length; 
for(var i:int = 0 ; i < linesNum; i++){ 
    trace('line ' + i + ': ' + lines[i]); 

var scores:Array = []; 

for (var i:int; i < lines.length; i++) { 
    scores.push(lines[i]); 
} 
classone_import.text = (scores.sort()); 
+0

Покажите нам входные данные (пример). – Fygo

+0

* Тест B: 10 * Тест A: 0 * Тест C: 7 –

ответ

1

Я рекомендую вам использовать регулярные выражения.

var str:String = "*Test B:10 *Test A:0 *Test C:7"; 

var wordsRe:RegExp = /\w+ \w+/g; // word + space + word 
var valuesRe:RegExp = /\d+/g; // only digits 

var names:Array = str.match(wordsRe); 
var scores:Array = str.match(valuesRe); 

trace(names);//Test B, Test A, Test C 
trace(scores);//10, 0, 7 
+0

Не то, чтобы ваше решение было плохим, но серьезно ли вы предлагаете использовать RegExp для новичков? (smthg подумать) Плюс представьте это: var str: String = "* Test 1:10 * Test 2: 0 * Test 3: 7"; ;) – Fygo

+0

Спасибо. Мне удалось получить помощь в предыдущем решении, но поскольку это проще, мне стало легче. –

0

Это вам подходит?

var s:String = "*Test B:10 *Test A:0 *Test C:7"; 
var divider:String = "*"; //the divider is "*" - taken from your example 
var arr:Array = s.split(divider); //split the string by the specified divider 

var scores:Array = []; 
var names:Array = []; 

for(var i:int=0; i<arr.length; i++) { 
    if(arr[i] == "") continue; //I am not sure whether this will occur but as your string begins with *, the first item may be "" -> so skip that 
    var item:Array = arr[i].split(":"); //split the string to 'name', 'score' 
    names.push(item[0]); 
    scores.push(parseFloat(item[1])); //parse the number from string; you could use parseInt if all the numbers are integers for sure 
} 

Тогда вы можете сортировать его или как хотите, чтобы это сделать.

+0

Да, это именно то, что я хотел поблагодарить. –

Смежные вопросы