如何以一种简单的方式获取java中字符串前缀上所有出现的字符?

| 我有一个这样的字符串::0ѭ 如何获得该示例字符串的前两个零。这里的规则是,我有一个包含字符的变量。然后,如果字符串的第一个字符与变量值相同,则需要查看字符串。我需要保留它,然后如果第二个字符串再次匹配,请连接它,依此类推。如果字符串的第一个字符与变量值不匹配,则它将不存储且不会再次查找前一个字符。 尽管我已经有解决方案,但是我使用了大约10行代码来实现。 这是我的代码:
    String start = \"0001\";
    String concatVal = \"\";
    char prefix = \'0\';

    for(int i = 0; i < start.length(); i++){
        if(start.charAt(i) == prefix){
            concatVal += prefix;
        } else {
            break;
        }
    }
    System.out.println(concatVal);

            //Output
            000
如果有更简单的方法可以实现此目的,请告诉我。谢谢     
已邀请:
        您的代码已经非常简单。英文说明并不短,所以不用担心。通过一点重写,您将获得:
public static String prefixOf(String s, char prefix) {
  for (int i = 0; i < s.length(); i++) {
    if (s.charAt(i) != prefix) {
      return s.substring(0, i);
    }
  }
  return s;
}
该定义只有四个实线长: 任何算法始终需要方法定义。不算在内。 计数。 计数。 计数。 仅右括号,可以省略。 仅右括号,可以省略。 计数。 每种方法都必须以大括号结尾。不算在内。 与您的描述相比,这确实很短。     
        您可以执行此操作而无需构建结果字符串char-by-char。而是寻找可能匹配的长度,然后从原始字符串中截取。
int length = 0;
while (length < start.length() && start.charAt(length) == prefix) {
    length++;
}
String concatVal = start.substring(0, length);
    
        看起来不错,可能的变化之一是
for(char ch : start.toCharArray())
{
if(ch == prefix)
{
   concatVal += prefix; 
} else {    
   break; 
 }
}
    
        您可以只从原始字符串中提取结果。
String text = \"0001\";
char prefix = \'0\';
String result = text;

for(int i = 0; i < text.length(); i++){
    if(text.charAt(i) != prefix) {
        result = text.substring(0, i);
        break;
    }
}
System.out.println(result);
    
        
    String start=\"0001\";
    String concat=\"\";
    String prefix=\"0\";
    for(int i=0;i<start.length();i++){
        if(!prefix.contains(String.valueOf(start.charAt(i)))){
            concat=start.substring(0, i);
            break;
        }
    }
    System.out.println(concat);
    

要回复问题请先登录注册