Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
jobily
Questdb
提交
f92d57fb
Q
Questdb
项目概览
jobily
/
Questdb
9 个月 前同步成功
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Q
Questdb
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
f92d57fb
编写于
9月 05, 2023
作者:
A
Andrei Pechkurov
提交者:
GitHub
9月 05, 2023
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
chore(core): add StringSink#lastIndexOf() methods (#3714)
上级
ce0702a4
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
54 addition
and
6 deletion
+54
-6
core/src/main/java/io/questdb/std/Chars.java
core/src/main/java/io/questdb/std/Chars.java
+7
-3
core/src/main/java/io/questdb/std/str/StringSink.java
core/src/main/java/io/questdb/std/str/StringSink.java
+11
-3
core/src/test/java/io/questdb/test/std/StringSinkTest.java
core/src/test/java/io/questdb/test/std/StringSinkTest.java
+36
-0
未找到文件。
core/src/main/java/io/questdb/std/Chars.java
浏览文件 @
f92d57fb
...
@@ -611,15 +611,19 @@ public final class Chars {
...
@@ -611,15 +611,19 @@ public final class Chars {
return
isQuote
(
open
)
&&
open
==
s
.
charAt
(
s
.
length
()
-
1
);
return
isQuote
(
open
)
&&
open
==
s
.
charAt
(
s
.
length
()
-
1
);
}
}
public
static
int
lastIndexOf
(
CharSequence
s
,
char
c
)
{
public
static
int
lastIndexOf
(
CharSequence
s
equence
,
char
term
)
{
for
(
int
i
=
s
.
length
()
-
1
;
i
>
-
1
;
i
--)
{
for
(
int
i
=
s
equence
.
length
()
-
1
;
i
>
-
1
;
i
--)
{
if
(
s
.
charAt
(
i
)
==
c
)
{
if
(
s
equence
.
charAt
(
i
)
==
term
)
{
return
i
;
return
i
;
}
}
}
}
return
-
1
;
return
-
1
;
}
}
public
static
int
lastIndexOf
(
CharSequence
sequence
,
int
sequenceLo
,
int
sequenceHi
,
CharSequence
term
)
{
return
indexOf
(
sequence
,
sequenceLo
,
sequenceHi
,
term
,
-
1
);
}
public
static
int
lowerCaseAsciiHashCode
(
CharSequence
value
,
int
lo
,
int
hi
)
{
public
static
int
lowerCaseAsciiHashCode
(
CharSequence
value
,
int
lo
,
int
hi
)
{
if
(
hi
==
lo
)
{
if
(
hi
==
lo
)
{
return
0
;
return
0
;
...
...
core/src/main/java/io/questdb/std/str/StringSink.java
浏览文件 @
f92d57fb
...
@@ -82,12 +82,20 @@ public class StringSink extends AbstractCharSink implements MutableCharSink, Clo
...
@@ -82,12 +82,20 @@ public class StringSink extends AbstractCharSink implements MutableCharSink, Clo
return
Chars
.
hashCode
(
buffer
,
0
,
pos
);
return
Chars
.
hashCode
(
buffer
,
0
,
pos
);
}
}
public
int
indexOf
(
String
s
)
{
public
int
indexOf
(
@NotNull
String
s
)
{
return
Chars
.
indexOf
(
this
,
0
,
pos
,
s
);
return
Chars
.
indexOf
(
this
,
0
,
pos
,
s
);
}
}
public
int
indexOf
(
String
s
,
int
fromIndex
)
{
public
int
indexOf
(
@NotNull
String
s
,
int
fromIndex
)
{
return
Chars
.
indexOf
(
this
,
fromIndex
,
pos
,
s
);
return
Chars
.
indexOf
(
this
,
Math
.
min
(
fromIndex
,
pos
),
pos
,
s
);
}
public
int
lastIndexOf
(
@NotNull
String
s
)
{
return
Chars
.
lastIndexOf
(
this
,
0
,
pos
,
s
);
}
public
int
lastIndexOf
(
@NotNull
String
s
,
int
fromIndex
)
{
return
Chars
.
lastIndexOf
(
this
,
0
,
Math
.
min
(
fromIndex
+
s
.
length
(),
pos
),
s
);
}
}
@Override
@Override
...
...
core/src/test/java/io/questdb/test/std/StringSinkTest.java
浏览文件 @
f92d57fb
...
@@ -26,9 +26,45 @@ package io.questdb.test.std;
...
@@ -26,9 +26,45 @@ package io.questdb.test.std;
import
io.questdb.std.str.StringSink
;
import
io.questdb.std.str.StringSink
;
import
io.questdb.test.tools.TestUtils
;
import
io.questdb.test.tools.TestUtils
;
import
org.junit.Assert
;
import
org.junit.Test
;
import
org.junit.Test
;
public
class
StringSinkTest
{
public
class
StringSinkTest
{
@Test
public
void
testIndexOf
()
{
StringSink
ss
=
new
StringSink
();
StringBuilder
sb
=
new
StringBuilder
();
Assert
.
assertEquals
(
sb
.
indexOf
(
"abc"
),
ss
.
indexOf
(
"abc"
));
String
str
=
"foo bar baz foo"
;
ss
.
put
(
str
);
sb
.
append
(
str
);
Assert
.
assertEquals
(
sb
.
indexOf
(
"foo"
),
ss
.
indexOf
(
"foo"
));
Assert
.
assertEquals
(
sb
.
indexOf
(
"bar"
),
ss
.
indexOf
(
"bar"
));
Assert
.
assertEquals
(
sb
.
indexOf
(
"baz"
),
ss
.
indexOf
(
"baz"
));
Assert
.
assertEquals
(
sb
.
indexOf
(
"abc"
),
ss
.
indexOf
(
"abc"
));
Assert
.
assertEquals
(
sb
.
lastIndexOf
(
"foo"
),
ss
.
lastIndexOf
(
"foo"
));
Assert
.
assertEquals
(
sb
.
lastIndexOf
(
"bar"
),
ss
.
lastIndexOf
(
"bar"
));
Assert
.
assertEquals
(
sb
.
lastIndexOf
(
"baz"
),
ss
.
lastIndexOf
(
"baz"
));
Assert
.
assertEquals
(
sb
.
lastIndexOf
(
"abc"
),
ss
.
lastIndexOf
(
"abc"
));
for
(
int
i
=
0
;
i
<
sb
.
length
();
i
++)
{
Assert
.
assertEquals
(
"index: "
+
i
,
sb
.
indexOf
(
"foo"
,
i
),
ss
.
indexOf
(
"foo"
,
i
));
Assert
.
assertEquals
(
"index: "
+
i
,
sb
.
indexOf
(
"bar"
,
i
),
ss
.
indexOf
(
"bar"
,
i
));
Assert
.
assertEquals
(
"index: "
+
i
,
sb
.
indexOf
(
"baz"
,
i
),
ss
.
indexOf
(
"baz"
,
i
));
Assert
.
assertEquals
(
"index: "
+
i
,
sb
.
indexOf
(
"abc"
,
i
),
ss
.
indexOf
(
"abc"
,
i
));
Assert
.
assertEquals
(
"index: "
+
i
,
sb
.
lastIndexOf
(
"foo"
,
i
),
ss
.
lastIndexOf
(
"foo"
,
i
));
Assert
.
assertEquals
(
"index: "
+
i
,
sb
.
lastIndexOf
(
"bar"
,
i
),
ss
.
lastIndexOf
(
"bar"
,
i
));
Assert
.
assertEquals
(
"index: "
+
i
,
sb
.
lastIndexOf
(
"baz"
,
i
),
ss
.
lastIndexOf
(
"baz"
,
i
));
Assert
.
assertEquals
(
"index: "
+
i
,
sb
.
lastIndexOf
(
"abc"
,
i
),
ss
.
lastIndexOf
(
"abc"
,
i
));
}
}
@Test
@Test
public
void
testUnprintable
()
{
public
void
testUnprintable
()
{
StringSink
ss
=
new
StringSink
();
StringSink
ss
=
new
StringSink
();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录