toLowerCase(loc)方法使用

package lianxii;

import java.util.Locale;

public class Local {

public static void main(String[] args) {

String str = "ThIs Is HaRd";
Locale loc = Locale.getDefault();//可以去掉这步
String lowerStr = str.toLowerCase(loc);
String upperStr = str.toUpperCase(loc);

System.out.println("old = " + str);
System.out.println("lowercase = " + lowerStr);
System.out.println("upperStr=" + upperStr);
}

}

//结果:
//old = ThIs Is HaRd
//lowercase = this is hard
//upperStr=THIS IS HARD
//Book.java链接:http://jinlovejava.iteye.com/blog/2128158
//注:这里str是直接给出值,不像Book.java,set、get然后再往里设置值
从Joern的CFG图中获取AST,需要进行以下步骤: 1. 通过Joern提供的Gremlin脚本,将代码转换为AST。可以使用以下命令将AST转换为JSON字符串: ``` gremlin> queryNode().emit().repeat(out()).times(10).hasLabel("Function").dedup().sideEffect{node -> nodeJson.put("type", node.label().toLowerCase()).put("id", node.id()).put("label", node.label().toLowerCase()).put("loc", getLoc(node))}.sideEffect{nodeJson.put("children", [])}.sideEffect{nodeJson.put("parent", null)}.sideEffect{nodeJson.put("index", nodeIndex)}.sideEffect{nodeIndex++}.toStream().toList().get(0) ``` 2. 将AST的JSON字符串解析为AST对象,可以使用Python中的json库进行解析,例如: ``` import json ast_json_str = "..." # 从Gremlin脚本中获取的AST的JSON字符串 ast_dict = json.loads(ast_json_str) ``` 3. 将AST对象转换为AST树。在AST对象中,每个节点都有一个id和parent id,可以通过这些信息将AST对象转换为AST树。可以使用以下Python代码将AST对象转换为AST树: ``` class AstNode: def __init__(self, id, label, loc, children=None): self.id = id self.label = label self.loc = loc self.children = children or [] self.parent = None def build_ast_tree(ast_dict): nodes = {} for node_dict in ast_dict: node_id = node_dict["id"] node_label = node_dict["label"] node_loc = node_dict["loc"] nodes[node_id] = AstNode(node_id, node_label, node_loc) for node_dict in ast_dict: node_id = node_dict["id"] parent_id = node_dict["parent"] if parent_id: nodes[parent_id].children.append(nodes[node_id]) nodes[node_id].parent = nodes[parent_id] return nodes.values() ``` 然后,可以通过以下代码调用build_ast_tree()函数将AST对象转换为AST树: ``` ast_tree = build_ast_tree(ast_dict) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值