Как передать строку? [Дубликат]

Подключите специальную хранимую процедуру в вашу базу данных, которая оповещает ваше приложение после изменения. Вам понадобится настраиваемый модуль и правильные триггерные операторы.

Другой вариант - опрос.

2
задан wereHamster 26 November 2012 в 13:34
поделиться

3 ответа

Как насчет этого?

parseFloat(input.substring(5,10));

Где 5,10 - начальные и конечные смещения нужного фрагмента строки.

1
ответ дан Asad Saeeduddin 16 August 2018 в 02:37
поделиться

Эта функция может обрабатывать несколько белых пробелов, а также вход, который не анализируется как float.

input = "123 123 123  foo", start = 0, end = 0, result = [], num;

// empty string evaluates to false
while( end < input.length ) {
    end = input.indexOf(" ", start );
    // -1 => only one element in input || end of the string has been reached
    if( end === -1 ) { end = input.length }
    num =  parseFloat( input.substring( start, end ) );
    // Should extracted string fail to parse then skip
    if( num ) result.push( num ); 
    // move forward or end will match current empty space
    start = end + 1;
}

result[2] // => "123";

Fiddle здесь

UPDATE

Просто была мозговая волна. Не используйте функцию карты, но просто используйте массив, созданный путем разделения строки следующим образом:

var floats = input.split(' ');
for( var i = 0, len = input.length; i < len; i++ ) {
    input[i] = parseFloat( input[i] );
}
2
ответ дан Bruno 16 August 2018 в 02:37
поделиться
  • 1
    @wereHamster Мое последнее предложение действительно делает то, что вы искали. – Bruno 26 November 2012 в 19:11

Если вы префикс своей строки одним пробелом, вы можете использовать это, чтобы получить первое число из строки:

var start = 0 // Initial search offset.
var firstOccurence = input.indexOf(' ', start);
//Get the substring from the first occurrence of ' ' after start, to the next one, and parse it as a float.
parseFloat(input.substring(firstOccurence , input.indexOf(' ', firstOccurence+1)));

Затем вы можете использовать следующее, чтобы получить числа после этого, из строки:

firstOccurence = t.indexOf(' ', firstOccurence+1);
parseFloat(t.substring(firstOccurence , t.indexOf(' ', firstOccurence+1)));

Используя это в цикле, вы можете выполнить поиск в своем списке, и вы можете начать поиск в списке по указанному индексу. Например, вы не можете запросить 7-й поплавок в списке. Единственный надежный способ сделать это - использовать .split(' ') или использовать приведенный выше код в цикле.

Чтобы найти n th float на входе, вы можете использовать следующее:

for(var i = 0, previousIndex = 0; i < n; i++){
    previousIndex = input.indexOf(' ', previousIndex + 1);
}
var float = parseFloat(input.substring(previousIndex, input.indexOf(' ',  previousIndex + 1)));
2
ответ дан Cerbrus 16 August 2018 в 02:37
поделиться
  • 1
    ++lastIndex фактически не изменяет значение lastIndex, так как оно является частью правой части присваивания lastIndex – Asad Saeeduddin 26 November 2012 в 14:06
  • 2
    Просто попробовал в хром-консоли. pre-incrementing variable на правой стороне. DOES изменяет значение переменной. var x = 0; var v = ++x; x //=>1; v //=>1; – Bruno 26 November 2012 в 14:13
  • 3
    Хм, это хороший момент. Тем не менее, я бы предпочел использовать +1 здесь. Другие пользователи могут копировать / вставлять / редактировать ... – Cerbrus 26 November 2012 в 14:16
  • 4
    @Bruno Nope, попробуйте var v= 0; v = v++;. Это приведет к нулю нуля. Оригинал не затрагивается, но вы используете его как RHS для другого назначения. – Asad Saeeduddin 26 November 2012 в 14:18
  • 5
    v = 0; v = ++v; v = ++v; //=> 0, 1, 2 И увеличение Chrome и Firefox v. – Cerbrus 26 November 2012 в 14:20
Другие вопросы по тегам:

Похожие вопросы: