小编R.B*_*.B.的帖子

Java - 在扫描程序中使用多个分隔符

我正在使用扫描仪来获取输入,并希望将其拆分为块.我希望它使用全字分隔符将其拆分.所以现在我有:

    Scanner scanner = new Scanner("1 imported bottle of perfume at 27.99");
    scanner.useDelimiter("\\sdelimitOne\\s");
Run Code Online (Sandbox Code Playgroud)

所以用输入"word word delimitOne word word delimitTwo word word"得到输出:

word word
word word delimitTwo word word
Run Code Online (Sandbox Code Playgroud)

我希望

    scanner.useDelimiter("\\sdelimitOne\\s\\sdelimitTwo\\s");
Run Code Online (Sandbox Code Playgroud)

可能会奏效,但不是.

我如何实现以下输出:

word word
word word
word word
Run Code Online (Sandbox Code Playgroud)

java delimiter java.util.scanner

15
推荐指数
1
解决办法
3万
查看次数

无法在存储库查询中使用枚举(neo4j/Spring Data)

我根据NodeEntity的Enum属性查询问题.

有问题的NodeEntity定义如下:

@NodeEntity(label = "Entity")
public class MyEntity {

    @GraphId
    private Long internalId;

    ....

    private State state;

    @Transient
    public enum State {
        STATEONE, STATETWO, STATETHREE
    }
    ....
Run Code Online (Sandbox Code Playgroud)

它保存没有问题,状态Enum表示完美,我可以使用其他属性(字符串)查询完全没有问题.但问题是存储库中的以下查询:

@Query("MATCH (entity:Entity {state:{0}})" +
       "RETURN entity")
List<MyEntity> findByState(MyEntity.State state)
Run Code Online (Sandbox Code Playgroud)

即查找具有给定状态的所有实体.

没有例外,但是使用它只会返回0个实体的列表.

我已经尝试了各种各样的变体,例如使用WHERE子句,没有运气.

实体持久存在,在同一测试中使用findAll()返回预期的实体列表,其状态与我期望的完全一致.

有什么想法吗?

neo4j spring-data-neo4j spring-data-neo4j-4

4
推荐指数
1
解决办法
377
查看次数