我需要向后分析一些代码并且我试图获得左括号的位置,问题是在括号内有更多的括号,例如:
customerPairs.leftOuterJoin(
sc.textFile("C:/path/transactions_data.txt")
.mapToPair(new PairFunction<String, String, String>() {
public Tuple2<String, String> call(String s) {
String[] transactionSplit = s.split(",");
return new Tuple2<String, String>(transactionSplit[2], transactionSplit[3]+","+transactionSplit[1]);
}
}))
.groupByKey()
所以在读完groupByKey方法并找到第一个右括号之后我想知道它从哪里开始(例如,Eclipse就是这样)
答案 0 :(得分:0)
您扫描整个字符串/文件一次,并以某种方式连接所有括号对的位置。 (例如,通过使用堆栈:每个左括号将其位置推到此堆栈上,右括号只是弹出堆栈顶部并将其“注册”在一起,并将其自己的位置作为一对“)。
您获取想要了解合作伙伴的括号的位置,并向前或向后浏览代码(取决于您选择的括号类型)并添加每个括号(+1表示开头 - 1表示右括号)直到你遇到一个与你所选择的一个矛盾。
您应该使用哪一个取决于您的需求/应用。
PS:请注意,如果你之间的字符串可能包含不成对的括号,你必须确保忽略这些字符串
希望对你有帮助。