我是c ++的新手,我想知道测试这两种方法之间字符串的第一个字母的最佳方法,以及为什么其中一种方法优于另一种方法:
private static final String VALUE = "value";
public static Expression getValueParameter(AnnotationExpr annotationExpr){
Expression expression = getParamater(annotationExpr, VALUE);
if(expression == null){
List<Expression> children = annotationExpr.getChildNodesByType(Expression.class);
if(!children.isEmpty()){
expression = children.get(0);
}
}
return expression;
}
public static Expression getParamater(AnnotationExpr annotationExpr, String parameterName){
List<MemberValuePair>children = annotationExpr.getChildNodesByType(MemberValuePair.class);
for(MemberValuePair memberValuePair : children){
if(parameterName.equals(memberValuePair.getNameAsString())){
return memberValuePair.getValue();
}
}
return null;
}
感谢您的建议!
答案 0 :(得分:0)
对于较旧的c ++版本,您可以这样做:
std::string str ("stack-overflow!");
std::cout << "index0: " <<str[0] << std::endl;
从c ++ 11开始,你可以轻轻地使用 std :: string.front()
http://www.cplusplus.com/reference/string/string/front/
doc指定:
返回对字符串第一个字符的引用。
示例:
std::string str ("stack-overflow!");
str.front() = 'S';
std::cout << str << std::endl;