001 /**
002 * Copyright 2007 Mike Kroutikov.
003 *
004 * This program is free software; you can redistribute it and/or modify
005 * it under the terms of the Lesser GNU General Public License as
006 * published by the Free Software Foundation; either version 3 of
007 * the License, or (at your option) any later version.
008 *
009 * This program is distributed in the hope that it will be useful,
010 * but WITHOUT ANY WARRANTY; without even the implied warranty of
011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
012 * Lesser GNU General Public License for more details.
013 *
014 * You should have received a copy of the Lesser GNU General Public License
015 * along with this program. If not, see <http://www.gnu.org/licenses/>.
016 */
017
018 package org.otfeed.samples;
019
020 /**
021 * Assorted utils for CSV formatting.
022 */
023 public class CSVUtil {
024
025 public static String quoteIfNeeded(String s) {
026 if(s == null) return s;
027 s = s.trim();
028 if(s.indexOf('#') >= 0) {
029 s = s.replace('#', '_');
030 }
031 if(s.indexOf(',') < 0) return s;
032 if(s.indexOf('"') < 0) return "\"" + s + "\"";
033 if(s.indexOf('\'') < 0) return "'" + s + "'";
034 throw new AssertionError("unquotable string [" + s + "]");
035 }
036 }