gpt4 book ai didi

java - 将 C++ std::string find*of() 方法转换为 Java

转载 作者:行者123 更新时间:2023-11-29 07:07:59 25 4
gpt4 key购买 nike

将代码从 C++ 转换为 Java 时,转换 std::string 方法(如 find_last_of()find_last_not_of 等)的简单方法是什么?

这些 C++ 方法查找一组字符中的任何一个的索引。

Java 的 String 类提供了 indexOf()lastIndexOf(),但它们查找字符或字符串的索引,而不是一组字符中的任何一个。

例如,下面的代码找到最后一个不是 ASCII 空白的字符。

size_t pos = myString.find_last_not_of( " \t\n\r" );

最佳答案

一种选择是使用 Guava 的 CharMatcher 类。

这里是每个单参数 find_*_of() 方法的测试转换。

public int findFirstOf( String sequence, String str ) {
return CharMatcher.anyOf( str ).indexIn( sequence );
}

public int findFirstNotOf( String sequence, String str ) {
return CharMatcher.anyOf( str ).negate().indexIn( sequence );
}

public int findLastOf( String sequence, String str ) {
return CharMatcher.anyOf( str ).lastIndexIn( sequence );
}

public int findLastNotOf( String sequence, String str ) {
return CharMatcher.anyOf( str ).negate().lastIndexIn( sequence );
}

欢迎其他答案。 [在 stackoverflow 和其他地方搜索时,我在 Java 中找不到任何关于 find_last_not_of() 的内容。而我第一次在 Guava 中搜索相应的功能时就错过了 CharMatcher。我想记录这种简单的转换以供将来使用。]

关于java - 将 C++ std::string find*of() 方法转换为 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17534503/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com