Java 使用stringbuilder获取一个字符(包括检查字符)之前的值
如何检查行的开头是否为“a”,后面是否有任何内容是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
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”)使用{