UniVRM/UniJSON/Scripts/Utf8String/Utf8StringSplitterExtensions.cs
ousttrue df85433628 Merge commit 'df5f79584312cf4f6cc7ec1d73a78f6ba475c9ad' as 'UniJSON'
Co-authored-by: Deatrathias <dmailsec@gmail.com>
Co-authored-by: dj-kusuha <dj.kusuha+github@gmail.com>
Co-authored-by: ousttrue <ousttrue@gmail.com>
Co-authored-by: yutopp <yutopp@gmail.com>
2018-12-28 20:38:39 +09:00

45 lines
987 B
C#

using System;
namespace UniJSON
{
public static class Utf8StringSplitterExtensions
{
/// <summary>
/// Split integer from start
///
/// "123 " => "123"
/// " 123" => FormatException
///
/// must start +-0123456789
///
/// </summary>
/// <param name="src"></param>
/// <returns></returns>
public static Utf8String SplitInteger(this Utf8String src)
{
var i = 0;
if(src[0]=='+' || src[0] == '-')
{
++i;
}
var j = i;
for(; j<src.ByteLength; ++j)
{
if(src[j]<'0' || src[j]>'9')
{
break;
}
}
if (i == j)
{
throw new FormatException();
}
return src.Subbytes(0, j);
}
}
}