Java for循环中的比较
我对java相当陌生,在从事一个项目时遇到了一个问题,我需要通过比较从for循环中得到的每个结果来提取一些数据 forloop用于从sql查询中获取结果&forloop的代码如下所示:Java for循环中的比较,java,sql,arrays,comparison,Java,Sql,Arrays,Comparison,我对java相当陌生,在从事一个项目时遇到了一个问题,我需要通过比较从for循环中得到的每个结果来提取一些数据 forloop用于从sql查询中获取结果&forloop的代码如下所示: for (Map<String, Object> row : results) { String data= row.get("getdata").toString(); } for(映射行:结果){ 字符串数据=row.get(“getd
for (Map<String, Object> row : results) {
String data= row.get("getdata").toString();
}
for(映射行:结果){
字符串数据=row.get(“getdata”).toString();
}
当循环运行2次时,从中接收到的数据有点像:
a12:1:123;b23:2:234;c24:3:344
a12:1:123;b23:2:234;c24:4:345
当在上述相同第一个值的数据中,之后的第二个值不同时:“
我想得到第三个值,例如c24:3:344
和c24:4:345
之间,第二个值不同,即3
和4
,因此我需要得到344
和345
。
类似地,我需要在for循环接收的结果中找到任何这样的数据
非常感谢您的帮助。请详细说明
您有一个循环,在一个结构上迭代,需要将每一行与前一行进行比较。每次迭代,您将获得当前行并将其与前一行进行比较,然后将前一行设置为下一次迭代的当前行
prevRowData = null;
for(Map<String, Object> row : results) {
String currRowData = row.get("getdata").toString();
if(prevRowData != null) {
compareRows(currRowData, prevRowData);
}
prevRowData = currRowData;
}
private void compareRows(String currRowData, String prevRowData) {
// split the row data into an array on the colon/semi-colon delimiter
// to make it easier to compare each portion
String[] currRow = currRowData.split(":|;");
String[] prevRow = prevRowData.split(":|;");
// if the first part is equal and the second part is not equal
if(currRow[0].equals(prevRow[0] && !currRow[1].equals(prevRow[1])) {
// print out the third part of each row (or return it or whatever)
System.out.printf("currRow: %s, prevRow: %s", currRow[2], prevRow[2]);
}
}
prewrowdata=null;
用于(地图行:结果){
字符串currRowData=row.get(“getdata”).toString();
if(prevRowData!=null){
compareRows(CurrowData、PrerowData);
}
prevRowData=currRowData;
}
私有void compareRows(字符串currowData、字符串prevRowData){
//将行数据拆分为冒号/分号分隔符上的数组
//使比较每个部分更容易
字符串[]currRow=currowdata.split(“:;”);
字符串[]prevRow=prevRowData.split(“:|;”);
//如果第一部分相等,第二部分不相等
如果(currRow[0].equals(prevRow[0]&&!currRow[1].equals(prevRow[1])){
//打印出每行的第三部分(或返回它或其他)
System.out.printf(“当前行:%s,当前行:%s”,当前行[2],当前行[2]);
}
}
这是一个相当粗糙的问题,您应该进行一些验证,并根据您的需要对其进行调整,但我希望我已经说明了基本思想。我对这个问题投了否决票,因为您询问的是一个bug,而没有向我们显示代码。没有具体的代码,我们只能猜测问题可能是什么,这对您或未来的读者都没有用处。如果您可以通过您的问题向我们展示您的问题的一部分,此否决票可能会被撤回。您能解释一下此中的prevRow和currRow是什么,以及我们将prevRowData的值存储在哪里吗?如果这是一个愚蠢的问题,我很抱歉,因为循环在结构
currRow
上迭代的是当前行,即我们从此迭代中的映射。prevRow
是我们在上一次迭代中从映射中提取的行。我们存储上一行,以便将其与当前行进行比较。