Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

//package com.java2s;
/**
 *  SOWGware, Copyright 2010
 * 
 *  This file is part of SOWGcalc.
    
 SOWGcalc is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation, either version 3 of the License, or
 (at your option) any later version.
    
 SOWGcalc is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
    
 You should have received a copy of the GNU General Public License
 along with SOWGcalc.  If not, see <http://www.gnu.org/licenses/>.
 */

import java.util.Arrays;

public class Main {
    public static String addParentheses(String text) {
        int numOpenParens = 0, numCloseParens = 0;

        //search string for parentheses
        for (char c : text.toCharArray()) {
            if (c == '(') {
                numOpenParens++;
            } else if (c == ')') {
                numCloseParens++;
            }
        }

        int diffParens = numOpenParens - numCloseParens;

        //construct a number of open/close parentheses depending on number
        String textCorrected = "";
        if (diffParens == 0) {
            textCorrected = text;
        } else if (diffParens < 0) {
            //add open parentheses at the beginning
            String parens = repeatingChars('(', -diffParens);
            textCorrected = parens + text;
        } else {
            //add close parentheses at the end
            String parens = repeatingChars(')', diffParens);
            textCorrected = text + parens;
        }

        return textCorrected;
    }

    public static String repeatingChars(char toRepeat, int number) {
        char[] chars = new char[number];
        Arrays.fill(chars, toRepeat);
        return new String(chars);
    }
}