集册 Java实例教程 在CSV格式转换器中引用值。

在CSV格式转换器中引用值。

欢马劈雪     最近更新时间:2020-01-02 10:19:05

655
引用CSV格式转换器中的值。
/*
 from n o w j a v a . c o m - 时代Java 
*/

/*******************************************************************************

 * Copyright (c) 2008 Actuate Corporation.

 * All rights reserved. This program and the accompanying materials

 * are made available under the terms of the Eclipse Public License v1.0

 * which accompanies this distribution, and is available at

 * http://www.eclipse.org/legal/epl-v10.html

 *

 * Contributors:

 *  Actuate Corporation  - initial API and implementation

 *******************************************************************************/

//package com.nowjava;


public class Main {

    public static final String QUOTE = "\"";


    /**

     * Quotes a value in CSV format converter. Here are the rules:

     * <ol><li>Fields with given separator must be delimited with double-quote

     * characters.</li>

     * <li>Fields that contain double quote characters must be

     * surrounded by double-quotes, and the embedded double-quotes must each be

     * represented by a pair of consecutive double quotes.</li>

     * <li>A field that contains embedded line-breaks must be surrounded by

     * double-quotes.</li>

     * <li>Fields with leading or trailing spaces must be delimited with

     * double-quote characters.</li>

     * <li>Null values are represented by empty strings without quotes</li>

     * 

     * @param value value to quote

     * @param sep CSV separator, to check whether the value contains it

     * @return the value quoted in CSV format

     */

    public static String quoteCSVValue(String value, String sep) {

        if (value == null) {

            return null;

        } else if (value.length() == 0) {

            return QUOTE + QUOTE;

        }


        // escape quotes

        value = value.replaceAll(QUOTE, QUOTE + QUOTE);
/* 来 自 时 代 J a v a - N o w J a v a . c o m*/

        boolean needQuote = false;

        needQuote = (value.indexOf(sep) != -1)

                || (value.indexOf(QUOTE) != -1)

                || (value.indexOf('\n') != -1) // line break

                || value.s
展开阅读全文