Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何确定foreach循环中的第一个和最后一个迭代?

如何确定foreach循环中的第一个和最后一个迭代?

提问于 2017-12-25 03:00:49
回答 2关注 0查看 1.7K

问题很简单。我foreach在我的代码中有一个循环:

代码语言:txt
复制
代码语言:txt
AI代码解释
复制
foreach($array as $element) {
代码语言:txt
AI代码解释
复制
    //code
代码语言:txt
AI代码解释
复制
}

在这个循环中,当我们在第一次或最后一次迭代时,我想要做出不同的反应。

这个怎么做?

回答 2

Oxida

发布于 2017-12-22 04:22:26

是我自己的问题的答案。我将各种结果的答案结合在一起,编写了一个可以打印XML的类。

无法保证它如何响应无效的XML或大型文档。

代码语言:txt
AI代码解释
复制
package ecb.sdw.pretty;
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
import org.apache.xml.serialize.OutputFormat;
代码语言:txt
AI代码解释
复制
import org.apache.xml.serialize.XMLSerializer;
代码语言:txt
AI代码解释
复制
import org.w3c.dom.Document;
代码语言:txt
AI代码解释
复制
import org.xml.sax.InputSource;
代码语言:txt
AI代码解释
复制
import org.xml.sax.SAXException;
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
import javax.xml.parsers.DocumentBuilder;
代码语言:txt
AI代码解释
复制
import javax.xml.parsers.DocumentBuilderFactory;
代码语言:txt
AI代码解释
复制
import javax.xml.parsers.ParserConfigurationException;
代码语言:txt
AI代码解释
复制
import java.io.IOException;
代码语言:txt
AI代码解释
复制
import java.io.StringReader;
代码语言:txt
AI代码解释
复制
import java.io.StringWriter;
代码语言:txt
AI代码解释
复制
import java.io.Writer;
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
/**
代码语言:txt
AI代码解释
复制
 * Pretty-prints xml, supplied as a string.
代码语言:txt
AI代码解释
复制
 * <p/>
代码语言:txt
AI代码解释
复制
 * eg.
代码语言:txt
AI代码解释
复制
 * <code>
代码语言:txt
AI代码解释
复制
 * String formattedXml = new XmlFormatter().format("<tag><nested>hello</nested></tag>");
代码语言:txt
AI代码解释
复制
 * </code>
代码语言:txt
AI代码解释
复制
 */
代码语言:txt
AI代码解释
复制
public class XmlFormatter {
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
    public XmlFormatter() {
代码语言:txt
AI代码解释
复制
    }
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
    public String format(String unformattedXml) {
代码语言:txt
AI代码解释
复制
        try {
代码语言:txt
AI代码解释
复制
            final Document document = parseXmlFile(unformattedXml);
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
            OutputFormat format = new OutputFormat(document);
代码语言:txt
AI代码解释
复制
            format.setLineWidth(65);
代码语言:txt
AI代码解释
复制
            format.setIndenting(true);
代码语言:txt
AI代码解释
复制
            format.setIndent(2);
代码语言:txt
AI代码解释
复制
            Writer out = new StringWriter();
代码语言:txt
AI代码解释
复制
            XMLSerializer serializer = new XMLSerializer(out, format);
代码语言:txt
AI代码解释
复制
            serializer.serialize(document);
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
            return out.toString();
代码语言:txt
AI代码解释
复制
        } catch (IOException e) {
代码语言:txt
AI代码解释
复制
            throw new RuntimeException(e);
代码语言:txt
AI代码解释
复制
        }
代码语言:txt
AI代码解释
复制
    }
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
    private Document parseXmlFile(String in) {
代码语言:txt
AI代码解释
复制
        try {
代码语言:txt
AI代码解释
复制
            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
代码语言:txt
AI代码解释
复制
            DocumentBuilder db = dbf.newDocumentBuilder();
代码语言:txt
AI代码解释
复制
            InputSource is = new InputSource(new StringReader(in));
代码语言:txt
AI代码解释
复制
            return db.parse(is);
代码语言:txt
AI代码解释
复制
        } catch (ParserConfigurationException e) {
代码语言:txt
AI代码解释
复制
            throw new RuntimeException(e);
代码语言:txt
AI代码解释
复制
        } catch (SAXException e) {
代码语言:txt
AI代码解释
复制
            throw new RuntimeException(e);
代码语言:txt
AI代码解释
复制
        } catch (IOException e) {
代码语言:txt
AI代码解释
复制
            throw new RuntimeException(e);
代码语言:txt
AI代码解释
复制
        }
代码语言:txt
AI代码解释
复制
    }
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
    public static void main(String[] args) {
代码语言:txt
AI代码解释
复制
        String unformattedXml =
代码语言:txt
AI代码解释
复制
                "<?xml version=\"1.0\" encoding=\"UTF-8\"?><QueryMessage\n" +
代码语言:txt
AI代码解释
复制
                        "        xmlns=\"http://www.SDMX.org/resources/SDMXML/schemas/v2_0/message\"\n" +
代码语言:txt
AI代码解释
复制
                        "        xmlns:query=\"http://www.SDMX.org/resources/SDMXML/schemas/v2_0/query\">\n" +
代码语言:txt
AI代码解释
复制
                        "    <Query>\n" +
代码语言:txt
AI代码解释
复制
                        "        <query:CategorySchemeWhere>\n" +
代码语言:txt
AI代码解释
复制
                        "   \t\t\t\t\t         <query:AgencyID>ECB\n\n\n\n</query:AgencyID>\n" +
代码语言:txt
AI代码解释
复制
                        "        </query:CategorySchemeWhere>\n" +
代码语言:txt
AI代码解释
复制
                        "    </Query>\n\n\n\n\n" +
代码语言:txt
AI代码解释
复制
                        "</QueryMessage>";
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
        System.out.println(new XmlFormatter().format(unformattedXml));
代码语言:txt
AI代码解释
复制
    }
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
}

不知雨

发布于 2017-12-22 04:21:53

代码语言:txt
AI代码解释
复制
Transformer transformer = TransformerFactory.newInstance().newTransformer();
代码语言:txt
AI代码解释
复制
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
代码语言:txt
AI代码解释
复制
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
代码语言:txt
AI代码解释
复制
//initialize StreamResult with File object to save to file
代码语言:txt
AI代码解释
复制
StreamResult result = new StreamResult(new StringWriter());
代码语言:txt
AI代码解释
复制
DOMSource source = new DOMSource(doc);
代码语言:txt
AI代码解释
复制
transformer.transform(source, result);
代码语言:txt
AI代码解释
复制
String xmlString = result.getWriter().toString();
代码语言:txt
AI代码解释
复制
System.out.println(xmlString);

注意:结果可能因Java版本而异。搜索特定于您的平台的解决方法。

和开发者交流更多问题细节吧,去 写回答
相关文章
如何从XML友好de迁移到Java Config
本教程讲述了如何使用Spring引导Web应用程序,并讨论了如何从XML配置转换成Java配置,而不必完全迁移整个XML配置。
烟雨平生
2023/03/07
4350
如何从XML友好de迁移到Java Config
java如何打印菱形_打印菱形java
第一步:首先对图像进行解析 想要打印如图所示的形状经过简单分析之后可得出想要打印该图形必须要进行多层循环嵌套分两个部分进行打印 第一部分为上半部分前四行他们是递增的关系后半部分后三行为递减关系,由此可以得出我们需要写两个打的循环。并且由于“*”位置的关系我们必须带入空格同时打印所以每个部分需要两个循环控制,即两个大循环每个里面嵌套两个小循环总计四个循环。 第二部:对数字进行分析 在分析之前我们必须明白外层循环控制行数,内层循环控制列数,因此我们需要分析他的行和列 如上图所示列出数字对应关系分析其中的联系的到如下代码。
全栈程序员站长
2022/11/11
2.7K0
java如何打印菱形_打印菱形java
Java –如何打印数组
这是打印数组的最简单方法– Arrays.toString (自JDK 1.5起)
全栈程序员站长
2022/09/01
9770
java如何打印菱形_JAVA输出菱形
思路:上面部分通过确定打印数量为奇数,然后采用公式计算出奇数来,下面因为空格数量就是总行数减中间行数-1计算的,
全栈程序员站长
2022/11/10
1.8K0
java如何打印菱形_JAVA输出菱形
java如何打印菱形_java实现空心菱形
第一步:首先对图像进行解析 想要打印如图所示的形状经过简单分析之后可得出想要打印该图形必须要进行多层循环嵌套分两个部分进行打印 第一部分为上半部分前四行他们是递增的关系后半部分后三行为递减关系,由此可以得出我们需要写两个打的循环。并且由于“*”位置的关系我们必须带入空格同时打印所以每个部分需要两个循环控制,即两个大循环每个里面嵌套两个小循环总计四个循环。 第二部:对数字进行分析 在分析之前我们必须明白外层循环控制行数,内层循环控制列数,因此我们需要分析他的行和列 如上图所示列出数字对应关系分析其中的联系的到如下代码。
全栈程序员站长
2022/11/16
1.2K0
java如何打印菱形_java实现空心菱形
java链表打印_java链表打印
public static void main(String[] args) {
全栈程序员站长
2022/08/20
1.9K0
eclipse如何导入java文件_xml表格
代码快速 实现xml 转换为 Excel(xml转excel通用类-java-完成代码可作工具使用)
全栈程序员站长
2022/09/23
1.2K0
【面试宝典】Java如何打印数组
面试官: 如何打印一个数组? 小白:用for循环。 面试官:如何打印一个List? 小白:用for循环。 面试官:如果打印一个二维数组? 小白:还是for循环。 面试官:你是重要的事情说三遍吗? 小白
程序员互动联盟
2018/03/15
9140
【面试宝典】Java如何打印数组
java如何打印数组的值,Java打印数组元素的值[通俗易懂]
本篇文章帮大家学习java打印数组元素的值,包含了Java打印数组元素的值使用方法、操作技巧、实例演示和注意事项,有一定的学习价值,大家可以用来参考。
全栈程序员站长
2022/08/11
4.5K0
如何将xml转换成excel_java 解析xml
import org.apache.poi.hssf.usermodel.HSSFCell;
全栈程序员站长
2022/09/23
9180
如何将xml转换成excel_java 解析xml
java 打印pdf_java打印pdf文件
在我们的实际工作中,经常需要实现打印功能。但由于历史原因,Java 提供的打印功能一直都比较弱。实际上最初的 jdk 根本不支持打印,直到 jdk1.1 才引入了很轻量的打印支持。实际上,SUN 公司也一直致力于 Java 打印功能的完善,而 Java2 平台则终于有了一个健壮的打印模式的开端, jdk1.4 则提供了一套完整的”Java 打印服务 API” (Java Print Service API),它对已有的打印功能是积极的补充。
全栈程序员站长
2022/10/04
5.5K0
java 打印pdf_java打印pdf文件
XML--XML从入门到精通 Part 1 认识XML
可扩展标记语言,标准通用标记语言的子集,简称XML。是一种用于标记电子文件使其具有结构性的标记语言。
风骨散人Chiam
2020/10/28
8410
java程序 如何优雅地读取xml文件
实例xml <?xml version="1.0" encoding="UTF-8"?> <c c1="0"> <d d1="101280101" d2="广州" d3="guangzhou" d
Meet相识
2018/09/12
2.9K0
java打印菱形代码_java打印菱形代码
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/11
3.5K0
java打印菱形代码_java打印菱形代码
java中打印数组的方法_Java数组方法–如何在Java中打印数组
An array is a data structure used to store data of the same type. Arrays store their elements in contiguous memory locations.
全栈程序员站长
2022/09/05
4.9K0
记录java从左上到右下打印二维数组,从左下到右上打印二维数组
左上到右下 public static void main(String[] args) { int[][] matrix = new int[][]{ new int[]{2, 3, 5,10}, new int[]{5, 2, 4, 1}, new int[]{3, 3, 1, 1} }; process(matrix); } pri
gzq大数据
2021/12/31
6340
如何从xml文件创建R语言数据框dataframe
从这个XML文件中,我想创建一个具有ID,name 列的R数据框。请注意,name和ID应包含变量的所有级别。
拓端
2020/11/03
3.5K0
如何从xml文件创建R语言数据框dataframe
如何从xml文件创建R语言数据框dataframe
从这个XML文件中,我想创建一个具有ID,name 列的R数据框。请注意,name和ID应包含变量的所有级别。
拓端
2020/10/24
3.6K0
xml解析---Java解析xml文件
dom4j解析xml文件、之前用下面的方法,90M的xml,500万行,解析完插入数据库,单线程,不到1小时搞定,而只是解析数据,只用了7秒。
IT云清
2019/01/22
7.1K0
如何从xml文件创建R语言数据框dataframe
从这个XML文件中,我想创建一个具有ID,name 列的R数据框。请注意,name和ID应包含变量的所有级别。
拓端
2020/10/24
3.3K0

相似问题

Java打印A4纸张PDF?

1454

Java的最佳XML解析器?

2526

如何从Java中的多个基类继承?

2221

如何使用Java日期从日期中减去X天?

2771

如何从Java中的字符串中提取数字?

22K
相关问答用户
腾讯云TDP | TDP会员擅长3个领域
平安资管 | 架构师擅长4个领域
擅长3个领域
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档