字符串和 StringBuffer
Strings and StringBuffer
我有一个方法想要 return 字符串的某个路径
例如,如果我输入:xxdrrryy - 它应该 return rrr,我只能 return 一个长度为 3 的字符串,所以我正在尝试这个,但我被跟踪了。一定是一个字母连续出现3次
public String countTriple(String str) {
int count = 1;
char currChar = str.charAt(0);
for(int i=1; i<str.length(); i++) {
if(currChar == str.charAt(i)) {
count++;
if(count == 3) {
StringBuilder sb = new StringBuilder("");
for(int j=0; j<3;j++) {
sb.append(currChar);
}
return sb.toString();
}
}
else {
count = 1;
}
currChar = str.charAt(i);
}
return null; //no triple found
}
请更新您的描述,很难理解您要说的内容。
但据我了解,您想找出字符串中特定字符的计数。
假设你输入 "aabbbcccc" 那么它应该 return c 有 4 个字符或类似的东西。
如果是这样,那么简单地遍历该字符串中的每个字符并将它们添加到 HashTable 中,并在每次找到该字符时增加计数,并且 return 您需要的值。
希望对您有所帮助。
此代码有效。试试这个:
public static String countTriple(String str) {
int count = 1;
char currChar = str.charAt(0);
for(int i=1; i<str.length(); i++) {
if(currChar == str.charAt(i)) {
count++;
if(count == 3) {
StringBuilder sb = new StringBuilder("");
for(int j=0; j<3;j++) {
sb.append(currChar);
}
return sb.toString();
}
}
else {
count = 1;
}
currChar = str.charAt(i);
}
return null; //no triple found
}
除非您有特殊原因不这样做,否则我建议您使用正则表达式。
像这样就足够了
Pattern p = Pattern.compile("(\w)\1\1");
Matcher m = p.matcher("abbccc");
if(m.find()){
System.out.println(m.group());
}
只需导入 java.util.regex.*
我有一个方法想要 return 字符串的某个路径 例如,如果我输入:xxdrrryy - 它应该 return rrr,我只能 return 一个长度为 3 的字符串,所以我正在尝试这个,但我被跟踪了。一定是一个字母连续出现3次
public String countTriple(String str) {
int count = 1;
char currChar = str.charAt(0);
for(int i=1; i<str.length(); i++) {
if(currChar == str.charAt(i)) {
count++;
if(count == 3) {
StringBuilder sb = new StringBuilder("");
for(int j=0; j<3;j++) {
sb.append(currChar);
}
return sb.toString();
}
}
else {
count = 1;
}
currChar = str.charAt(i);
}
return null; //no triple found
}
请更新您的描述,很难理解您要说的内容。 但据我了解,您想找出字符串中特定字符的计数。 假设你输入 "aabbbcccc" 那么它应该 return c 有 4 个字符或类似的东西。
如果是这样,那么简单地遍历该字符串中的每个字符并将它们添加到 HashTable 中,并在每次找到该字符时增加计数,并且 return 您需要的值。
希望对您有所帮助。
此代码有效。试试这个:
public static String countTriple(String str) {
int count = 1;
char currChar = str.charAt(0);
for(int i=1; i<str.length(); i++) {
if(currChar == str.charAt(i)) {
count++;
if(count == 3) {
StringBuilder sb = new StringBuilder("");
for(int j=0; j<3;j++) {
sb.append(currChar);
}
return sb.toString();
}
}
else {
count = 1;
}
currChar = str.charAt(i);
}
return null; //no triple found
}
除非您有特殊原因不这样做,否则我建议您使用正则表达式。
像这样就足够了
Pattern p = Pattern.compile("(\w)\1\1");
Matcher m = p.matcher("abbccc");
if(m.find()){
System.out.println(m.group());
}
只需导入 java.util.regex.*