Java examples for File Path IO:CSV File
Quotes a value in CSV format converter.
/******************************************************************************* * 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:/*from w w w .ja v a 2 s.c o m*/ * Actuate Corporation - initial API and implementation *******************************************************************************/ //package com.java2s; 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); boolean needQuote = false; needQuote = (value.indexOf(sep) != -1) || (value.indexOf(QUOTE) != -1) || (value.indexOf('\n') != -1) // line break || value.startsWith(" ") || value.endsWith(" ") //$NON-NLS-1$ //$NON-NLS-2$ || value.startsWith("\t") || value.endsWith("\t"); //$NON-NLS-1$ //$NON-NLS-2$ if (needQuote) { value = QUOTE + value + QUOTE; } return value; } }