A single line contains three float values separated by space in javascript

I have a task to read n given numbers in a single line, separated by a space [ ] from the console.

I know how to do it when I read every number on a separate line [Console.ReadLine[]] but I need help with how to do it when the numbers are on the same line.

asked Jan 21, 2015 at 14:51

You can use String.Split. You can provide the character[s] that you want to use to split the string into multiple. If you provide none all white-spaces are assumed as split-characters[so new-line, tab etc]:

string[] tokens = line.Split[]; // all spaces, tab- and newline characters are used

or, if you want to use only spaces as delimiter:

string[] tokens = line.Split[' '];

If you want to parse them to int you can use Array.ConvertAll[]:

int[] numbers = Array.ConvertAll[tokens, int.Parse]; // fails if the format is invalid

If you want to check if the format is valid use int.TryParse.

answered Jan 21, 2015 at 14:52

Tim SchmelterTim Schmelter

434k69 gold badges655 silver badges901 bronze badges

2

You can split the line using String.Split[]:

var line = Console.ReadLine[];
var numbers = line.Split[' '];
foreach[var number in numbers]
{
    int num;
    if [Int32.TryParse[number, out num]]
    {
        // num is your number as integer
    }
}

answered Jan 21, 2015 at 14:52

Christoph FinkChristoph Fink

22.3k9 gold badges68 silver badges110 bronze badges

You can use Linq to read the line then split and finally convert each item to integers:

  int[] numbers = Console
        .ReadLine[]
        .Split[new Char[] {' '}, StringSplitOptions.RemoveEmptyEntries]
        .Select[item => int.Parse[item]]
        .ToArray[];

answered Jan 21, 2015 at 14:56

Dmitry BychenkoDmitry Bychenko

169k17 gold badges153 silver badges200 bronze badges

You simply need to split the data entered.

string numbersLine = console.ReadLine[];

string[] numbers = numbersLine.Split[new char[] { ' '}];

// Convert to int or whatever and use

answered Jan 21, 2015 at 14:53

KamiKami

18.8k4 gold badges49 silver badges63 bronze badges

This will help you to remove extra blank spaces present at the end or beginning of the input string.

string daat1String = Console.ReadLine[];
daat1String = daat1String.TrimEnd[].TrimStart[];
string[] data1 = daat1String.Split[null];
int[] data1Int = Array.ConvertAll[data1, int.Parse];

answered Dec 13, 2018 at 12:12

you can do

int[] Numbers  = Array.ConvertAll[Console.ReadLine[].Split[' '],[item] => Convert.ToInt32[item]];

the above line helps us get individual integers in a Line , separated by a Single space.Two Or More spaces between numbers will result in error.

int[] Numbers = Array.ConvertAll[Console.ReadLine[].Split[new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries], [item] => Convert.ToInt32[item]];

this variation will Fix the error and work well even when two or more spaces between numbers in a Line

answered Mar 27, 2019 at 15:34

1

you can use this function, it's very helpful

    static List inputs = new List[];
    static int input_pointer = 0;

    public static string cin[char sep = ' ']
    {
        if [input_pointer >= inputs.Count]
        {
            string line = Console.ReadLine[];

            inputs = line.Split[sep].OfType[].ToList[];
            input_pointer = 0;
        }

        string v = inputs[input_pointer];
        input_pointer++;

        return v;
    }

Example:

        for[var i =0; i

Chủ Đề