Java 使用stringbuilder获取一个字符(包括检查字符)之前的值

Java 使用stringbuilder获取一个字符(包括检查字符)之前的值,java,string,stringbuilder,boundary,Java,String,Stringbuilder,Boundary,如何检查行的开头是否为“a”,后面是否有任何内容是ablahbalah StringBuilder sb = new StringBuilder(); String[] lines1 = sb.toString().split("\\n"); for(String getVal: lines1){ while(getVal.contains("^A\\w*")){ temp.append(getVal);//If found store all the former values an

如何检查行的开头是否为“a”,后面是否有任何内容是
ablahbalah

StringBuilder sb = new StringBuilder();
String[] lines1 = sb.toString().split("\\n");
for(String getVal: lines1){
 while(getVal.contains("^A\\w*")){
    temp.append(getVal);//If found store all the former values and line including A + 2 characters in a temp buffer
  }
}
System.out.println("temp = " + temp.toString());
输出

temp =
Temp返回空

我做错什么了吗

更新

使用:
if(getVal.startsWith(“6000”){

我得到了期望的输出。 这个逻辑中的任何问题


如何从现有的sb中删除
temp

这是因为temp的作用域。您是否在循环外部声明了变量temp?

您需要使用
匹配()
方法,而不是
包含()
为什么不这样做呢

if (getVal.startWith("A")) {
   ...
像这样:

StringBuilder sb = new StringBuilder();
.
.
.
String[] lines1 = sb.toString().split("\\n");
for(String getVal: lines1){
 while(getVal.matches("A\\w*")){
    temp.append(getVal);//If found store all the former values and line including A + 2 characters in a temp buffer
  }
}
System.out.println("temp = " + temp.toString());
谢谢大家

我找到了答案

String[] lines1 = sb.toString().split("\\n");
StringBuilder temp = new StringBuilder();
for(String getVal: lines1){
 if(getVal.startsWith("6000")){
     temp.append(getVal);
     break;
 }
 else{
     temp.append(getVal);
 }
 temp.append("\n");
}

要将字符串与正则表达式匹配-必须使用方法
string.matches(…)
(请参见javadoc:)为什么不使用字符(0)并检查值是否为“A”?如果(getVal.startsWith(“6000”)使用{