Преобразовать строку в Uri

avakar был почти прав - используйте modf, но детали были отключены.

modf возвращает дробную часть, поэтому тест должен состоять в том, что результат modf равен 0.0.

modf принимает два аргумента, второй из которых должен быть указателем того же типа, что и первый аргумент. Передача NULL или 0 вызывает ошибку сегментации в среде выполнения g ++. В стандарте не указывается, что передача 0 безопасна; возможно, это работает на машине Авакара, но не делайте этого.

Вы также можете использовать fmod(a,b), который вычисляет a по модулю b, проходящий 1.0. Это также должно дать дробную часть.

#include<cmath>
#include<iostream>

int main ()
{
    double d1 = 555;
    double d2 = 55.343;

    double int_part1;
    double int_part2;

    using namespace std;

    cout << boolalpha;
    cout << d1 << " " << modf ( d1, &int_part1 ) << endl;
    cout << d1 << " " << ( modf ( d1, &int_part1 ) == 0.0 ) << endl;
    cout << d2 << " " << modf ( d2, &int_part2 ) << endl;
    cout << d1 << " " << ( modf ( d2, &int_part2 ) == 0.0 ) << endl;
    cout << d2 << " " << modf ( d2, &int_part2 ) << endl;
    cout << d1 << " " << ( modf ( d2, &int_part2 ) == 0.0 ) << endl;

    cout << d1 << " " << fmod ( d1, 1.0 ) << endl;
    cout << d1 << " " << ( fmod ( d1, 1.0 ) == 0 ) << endl;
    cout << d2 << " " << fmod ( d2, 1.0 ) << endl;
    cout << d2 << " " << ( fmod ( d2, 1.0 ) == 0 ) << endl;


    cout.flush();

    modf ( d1, 0 ); // segfault

}
152
задан Chad Ferguson 30 July 2013 в 12:41
поделиться

2 ответа

Вы можете использовать статический метод parse из Uri

Uri myUri = Uri.parse("http://stackoverflow.com")
361
ответ дан 23 November 2019 в 21:34
поделиться

Что вы собираетесь делать с URI?

Если вы собираетесь использовать его, например, с HttpGet, вы можете просто использовать строку напрямую при создании экземпляра HttpGet .

HttpGet get = new HttpGet("http://stackoverflow.com");
1
ответ дан 23 November 2019 в 21:34
поделиться
Другие вопросы по тегам:

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