using System.Collections.Generic;
const int MaximumLineLength = 28;
public static void Main()
var testAddresses = new[]
"MIAD News Agents 264/266 Chorley New Road Horwich",
"Londis Stores 38-40 Sinodun Road"
foreach (var testAddress in testAddresses)
var results = SplitStringOnLengthWithSpaces(testAddress);
foreach (var result in results)
Console.WriteLine("Address line " + addressNumber + ": " + result);
private static List<string> SplitStringOnLengthWithSpaces(string input)
var results = new List<string>();
var inputComponents = input.Split(' ');
var currentLineLength = 0;
foreach (var component in inputComponents)
currentLineLength += component.Length + 1;
if (currentLineLength >= MaximumLineLength)
results.Add(currentString.Trim());
currentString += component + " ";
if (string.IsNullOrWhiteSpace(currentString) == false)
results.Add(currentString);