Java与C++的“std::string::find_first_not_of”相当
C++的std::string::find_first_not of是否有Java等价物 我有:Java与C++的“std::string::find_first_not_of”相当,java,string,Java,String,C++的std::string::find_first_not of是否有Java等价物 我有: std::string path = "some path"; std::string eol = "some text"; size_t nextLinePos = path.find_first_not_of("\r\n", eol); 如何在Java上实现这一点 Ps:对于std::find_first_,我使用此函数: public static int findFirstOf(
std::string path = "some path";
std::string eol = "some text";
size_t nextLinePos = path.find_first_not_of("\r\n", eol);
如何在Java上实现这一点
Ps:对于std::find_first_,我使用此函数:
public static int findFirstOf(String findIn, String letters, int position)
{
Pattern pattern = Pattern.compile("[" + letters + "]");
Matcher matcher = pattern.matcher(findIn);
if (matcher.find())
{
position = matcher.start();
}
return position;
}
也许这里需要一些改变?我想你可以用一种非常简单的方式来写: 静态int-findFirstNotOfString searchIn、字符串searchFor、int-searchFrom{ char[]chars=searchFor.toCharArray; 布尔发现; 对于int,i=searchFrom;i
static int findFirstNotOf(String searchIn, String searchFor, int searchFrom) {
// char[] chars = searchFor.toCharArray();
boolean found;
char c;
for (int i = searchFrom; i < searchIn.length(); i++) {
found = true;
// for (char c : chars) {
c = searchIn.charAt(i);
System.out.printf("s='%s', idx=%d\n",c,searchFor.indexOf(c));
if (searchFor.indexOf(c) == -1) {
found = false;
}
// }
if (!found) {
return i;
}
}
return -1;
}
public static void main(String[] args){
String str = "look for non-alphabetic characters...";
int found = findFirstNotOf(str,"abcdefghijklmnopqrstuvwxyz ",0);
if (found!=str.length()) {
System.out.print("The first non-alphabetic character is " + str.charAt(found));
System.out.print(" at position " + found + '\n');
}
}