Нахождение места вхождения слова в строку - PullRequest
0 голосов
/ 10 июня 2011

У меня есть строка с разделителями в трубе "Y | Y | Y | N | N".Как я могу найти позицию первого появления N, используя код после обработки строки.

Ответы [ 4 ]

2 голосов
/ 10 июня 2011

Похоже, ваш вопрос должен читать:

"У меня есть строка, описанная в трубе. Я хочу, чтобы индекс был в строке после удаления каналов"

// first occurrence of string "N" if you simply remove the pipes first.
var str:String = "Y|Y|Y|N|N";
var index:int = str.replace("|","").indexOf("N");

Поскольку удаление каналов может фактически объединять строки и приводить к ложным срабатываниям, вы можете рассмотреть следующее:

var str:String = "Y|Y|Y|N|N";
var pieces:Array = str.split("|");
for( var i:int = 0; i < pieces.length; i++ )
{
    if( pieces[ i ] == "N" ) break;
}
// i will now be the first index.

если вы просто ищете удаление канала, str.replace работает в AS3, в AS2 вам нужно использовать str.split ("|"). Join ("");

1 голос
/ 10 июня 2011

AS3 поддерживает множество таких простых задач,

Для решения вашей проблемы просто используйте:

str.indexOf("N");

где str - ваша строка.

Подробнее о строковых функциях, здесь .


РЕДАКТИРОВАТЬ:

Это не проблема, поэтому я связал вас с as3 документами. Вам вряд ли понадобятся регулярные выражения.

str.replace("|","").indexOf("N");
0 голосов
/ 10 июня 2011

Надеюсь, я вас правильно понял ... Вы прочитали http://www.adobe.com/support/flash/action_scripts/actionscript_dictionary/actionscript_dictionary692.html?

indexOf возвращает позицию подстроки, которую вы ищете в строке.

0 голосов
/ 10 июня 2011

http://livedocs.adobe.com/flex/3/html/help.html?content=12_Using_Regular_Expressions_01.html

Ваше выражение будет что-то вроде "/Y\|Y\|Y\|(.)\|.\|/" (я не проверял это ...)

Хорошее место для тестирования: http://ryanswanson.com/regexp/#start

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...