Converting the comma seprated numeric string into int array
up vote
3
down vote
favorite
//convert the comma separated numeric string into the array of int.
public class HelloWorld
{
public static void main(String args)
{
// line is the input which have the comma separated number
String line = "1,2,3,1,2,2,1,2,3,";
// 1 > split
String inputNumber = line.split(",");
// 1.1 > declear int array
int number = new int[10];
// 2 > convert the String into int and save it in int array.
for(int i=0; i<inputNumber.length;i++){
number[i]=Integer.parseInt(inputNumber[i]);
}
}
}
Is there a more efficient solution to achieve the same result?
java strings array
add a comment |
up vote
3
down vote
favorite
//convert the comma separated numeric string into the array of int.
public class HelloWorld
{
public static void main(String args)
{
// line is the input which have the comma separated number
String line = "1,2,3,1,2,2,1,2,3,";
// 1 > split
String inputNumber = line.split(",");
// 1.1 > declear int array
int number = new int[10];
// 2 > convert the String into int and save it in int array.
for(int i=0; i<inputNumber.length;i++){
number[i]=Integer.parseInt(inputNumber[i]);
}
}
}
Is there a more efficient solution to achieve the same result?
java strings array
2
Duplicated from SO: stackoverflow.com/q/35764996/3207406
– oliverpool
Mar 3 '16 at 7:12
add a comment |
up vote
3
down vote
favorite
up vote
3
down vote
favorite
//convert the comma separated numeric string into the array of int.
public class HelloWorld
{
public static void main(String args)
{
// line is the input which have the comma separated number
String line = "1,2,3,1,2,2,1,2,3,";
// 1 > split
String inputNumber = line.split(",");
// 1.1 > declear int array
int number = new int[10];
// 2 > convert the String into int and save it in int array.
for(int i=0; i<inputNumber.length;i++){
number[i]=Integer.parseInt(inputNumber[i]);
}
}
}
Is there a more efficient solution to achieve the same result?
java strings array
//convert the comma separated numeric string into the array of int.
public class HelloWorld
{
public static void main(String args)
{
// line is the input which have the comma separated number
String line = "1,2,3,1,2,2,1,2,3,";
// 1 > split
String inputNumber = line.split(",");
// 1.1 > declear int array
int number = new int[10];
// 2 > convert the String into int and save it in int array.
for(int i=0; i<inputNumber.length;i++){
number[i]=Integer.parseInt(inputNumber[i]);
}
}
}
Is there a more efficient solution to achieve the same result?
java strings array
java strings array
edited Mar 3 '16 at 17:23
SuperBiasedMan
11.8k52660
11.8k52660
asked Mar 3 '16 at 7:04
Prabhat Yadav
74115
74115
2
Duplicated from SO: stackoverflow.com/q/35764996/3207406
– oliverpool
Mar 3 '16 at 7:12
add a comment |
2
Duplicated from SO: stackoverflow.com/q/35764996/3207406
– oliverpool
Mar 3 '16 at 7:12
2
2
Duplicated from SO: stackoverflow.com/q/35764996/3207406
– oliverpool
Mar 3 '16 at 7:12
Duplicated from SO: stackoverflow.com/q/35764996/3207406
– oliverpool
Mar 3 '16 at 7:12
add a comment |
3 Answers
3
active
oldest
votes
up vote
4
down vote
Basic improvements
- Instead of setting the size of the int array to 10, it would be better to derive the right size from the size of String array
- Instead of
int number
the more conventional way to write isint number
- For structures that contain multiple values it's more natural to give plural names, for example "number" -> "numbers" for an array of numbers
- The variable names are very poor in general, and should be improved to better reflect their purpose, making the code easier to understand
Something like this:
String line = "1,2,3,1,2,2,1,2,3,";
String parts = line.split(",");
int ints = new int[parts.length];
for (int i = 0; i < parts.length; i++) {
ints[i] = Integer.parseInt(parts[i]);
}
Split to logical steps
It's good to get into the habit of decomposing tasks to their small steps. That is, instead of having all the logical steps in a single main
method, it would be better to split to multiple functions, for example:
static int toIntArray(String arr) {
int ints = new int[arr.length];
for (int i = 0; i < arr.length; i++) {
ints[i] = Integer.parseInt(arr[i]);
}
return ints;
}
static int parseLineToIntArray(String line) {
return toIntArray(line.split(","));
}
public static void main(String args) {
String line = "1,2,3,1,2,2,1,2,3,";
System.out.println(Arrays.toString(parseLineToIntArray(line)));
}
add a comment |
up vote
3
down vote
You code is not properly indented and IMO your comments don't add any value. You could create a separate function instead of putting everything in the main
function. Also you could add an extra parameter so you can specify the delimiter instead of always being ","
.
Also if you can use java 8 this becomes even more trivial:
public static int toIntArray(String input, String delimiter) {
return Arrays.stream(input.split(delimiter))
.mapToInt(Integer::parseInt)
.toArray();
}
add a comment |
up vote
0
down vote
Here is the solution of your problem which splits the comma separated values and also converts it in to Integer Array
String line = "1,2,3,1,2,2,1,2,3,";
//If you want only unique values
Set<Integer> set = Stream.of(line.split(",")).map(Integer::parseInt).collect(Collectors.toSet());
//If you want all values
List<Integer> list = Stream.of(documentMailIds.split(",")).map(Integer::parseInt).collect(Collectors.toList());
int uniqueNumbers = set.toArray();
int allNumbers = list.toArray();
It is more faster then conventional solution because it uses multi-core functionality at hardware level.
Extremely overkill for the purpose of learning how to use Java on a basic level, and unfortunately without accompanying explanation. Why is the second linedocumentMailIds
instead ofline
? Also doesn't add much to @MAG 's answer, and there is no guarantee that this will be executed in parallel. Just usingStream
doesn't allow parallel computation, you want a specific parallel Stream using theparallelStream
method on the Stream you got fromStream.of
.
– Tamoghna Chowdhury
Nov 15 at 12:23
add a comment |
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
4
down vote
Basic improvements
- Instead of setting the size of the int array to 10, it would be better to derive the right size from the size of String array
- Instead of
int number
the more conventional way to write isint number
- For structures that contain multiple values it's more natural to give plural names, for example "number" -> "numbers" for an array of numbers
- The variable names are very poor in general, and should be improved to better reflect their purpose, making the code easier to understand
Something like this:
String line = "1,2,3,1,2,2,1,2,3,";
String parts = line.split(",");
int ints = new int[parts.length];
for (int i = 0; i < parts.length; i++) {
ints[i] = Integer.parseInt(parts[i]);
}
Split to logical steps
It's good to get into the habit of decomposing tasks to their small steps. That is, instead of having all the logical steps in a single main
method, it would be better to split to multiple functions, for example:
static int toIntArray(String arr) {
int ints = new int[arr.length];
for (int i = 0; i < arr.length; i++) {
ints[i] = Integer.parseInt(arr[i]);
}
return ints;
}
static int parseLineToIntArray(String line) {
return toIntArray(line.split(","));
}
public static void main(String args) {
String line = "1,2,3,1,2,2,1,2,3,";
System.out.println(Arrays.toString(parseLineToIntArray(line)));
}
add a comment |
up vote
4
down vote
Basic improvements
- Instead of setting the size of the int array to 10, it would be better to derive the right size from the size of String array
- Instead of
int number
the more conventional way to write isint number
- For structures that contain multiple values it's more natural to give plural names, for example "number" -> "numbers" for an array of numbers
- The variable names are very poor in general, and should be improved to better reflect their purpose, making the code easier to understand
Something like this:
String line = "1,2,3,1,2,2,1,2,3,";
String parts = line.split(",");
int ints = new int[parts.length];
for (int i = 0; i < parts.length; i++) {
ints[i] = Integer.parseInt(parts[i]);
}
Split to logical steps
It's good to get into the habit of decomposing tasks to their small steps. That is, instead of having all the logical steps in a single main
method, it would be better to split to multiple functions, for example:
static int toIntArray(String arr) {
int ints = new int[arr.length];
for (int i = 0; i < arr.length; i++) {
ints[i] = Integer.parseInt(arr[i]);
}
return ints;
}
static int parseLineToIntArray(String line) {
return toIntArray(line.split(","));
}
public static void main(String args) {
String line = "1,2,3,1,2,2,1,2,3,";
System.out.println(Arrays.toString(parseLineToIntArray(line)));
}
add a comment |
up vote
4
down vote
up vote
4
down vote
Basic improvements
- Instead of setting the size of the int array to 10, it would be better to derive the right size from the size of String array
- Instead of
int number
the more conventional way to write isint number
- For structures that contain multiple values it's more natural to give plural names, for example "number" -> "numbers" for an array of numbers
- The variable names are very poor in general, and should be improved to better reflect their purpose, making the code easier to understand
Something like this:
String line = "1,2,3,1,2,2,1,2,3,";
String parts = line.split(",");
int ints = new int[parts.length];
for (int i = 0; i < parts.length; i++) {
ints[i] = Integer.parseInt(parts[i]);
}
Split to logical steps
It's good to get into the habit of decomposing tasks to their small steps. That is, instead of having all the logical steps in a single main
method, it would be better to split to multiple functions, for example:
static int toIntArray(String arr) {
int ints = new int[arr.length];
for (int i = 0; i < arr.length; i++) {
ints[i] = Integer.parseInt(arr[i]);
}
return ints;
}
static int parseLineToIntArray(String line) {
return toIntArray(line.split(","));
}
public static void main(String args) {
String line = "1,2,3,1,2,2,1,2,3,";
System.out.println(Arrays.toString(parseLineToIntArray(line)));
}
Basic improvements
- Instead of setting the size of the int array to 10, it would be better to derive the right size from the size of String array
- Instead of
int number
the more conventional way to write isint number
- For structures that contain multiple values it's more natural to give plural names, for example "number" -> "numbers" for an array of numbers
- The variable names are very poor in general, and should be improved to better reflect their purpose, making the code easier to understand
Something like this:
String line = "1,2,3,1,2,2,1,2,3,";
String parts = line.split(",");
int ints = new int[parts.length];
for (int i = 0; i < parts.length; i++) {
ints[i] = Integer.parseInt(parts[i]);
}
Split to logical steps
It's good to get into the habit of decomposing tasks to their small steps. That is, instead of having all the logical steps in a single main
method, it would be better to split to multiple functions, for example:
static int toIntArray(String arr) {
int ints = new int[arr.length];
for (int i = 0; i < arr.length; i++) {
ints[i] = Integer.parseInt(arr[i]);
}
return ints;
}
static int parseLineToIntArray(String line) {
return toIntArray(line.split(","));
}
public static void main(String args) {
String line = "1,2,3,1,2,2,1,2,3,";
System.out.println(Arrays.toString(parseLineToIntArray(line)));
}
edited Mar 3 '16 at 16:48
answered Mar 3 '16 at 7:42
janos
96.5k12122349
96.5k12122349
add a comment |
add a comment |
up vote
3
down vote
You code is not properly indented and IMO your comments don't add any value. You could create a separate function instead of putting everything in the main
function. Also you could add an extra parameter so you can specify the delimiter instead of always being ","
.
Also if you can use java 8 this becomes even more trivial:
public static int toIntArray(String input, String delimiter) {
return Arrays.stream(input.split(delimiter))
.mapToInt(Integer::parseInt)
.toArray();
}
add a comment |
up vote
3
down vote
You code is not properly indented and IMO your comments don't add any value. You could create a separate function instead of putting everything in the main
function. Also you could add an extra parameter so you can specify the delimiter instead of always being ","
.
Also if you can use java 8 this becomes even more trivial:
public static int toIntArray(String input, String delimiter) {
return Arrays.stream(input.split(delimiter))
.mapToInt(Integer::parseInt)
.toArray();
}
add a comment |
up vote
3
down vote
up vote
3
down vote
You code is not properly indented and IMO your comments don't add any value. You could create a separate function instead of putting everything in the main
function. Also you could add an extra parameter so you can specify the delimiter instead of always being ","
.
Also if you can use java 8 this becomes even more trivial:
public static int toIntArray(String input, String delimiter) {
return Arrays.stream(input.split(delimiter))
.mapToInt(Integer::parseInt)
.toArray();
}
You code is not properly indented and IMO your comments don't add any value. You could create a separate function instead of putting everything in the main
function. Also you could add an extra parameter so you can specify the delimiter instead of always being ","
.
Also if you can use java 8 this becomes even more trivial:
public static int toIntArray(String input, String delimiter) {
return Arrays.stream(input.split(delimiter))
.mapToInt(Integer::parseInt)
.toArray();
}
answered Mar 8 '16 at 20:23
MAG
2,399524
2,399524
add a comment |
add a comment |
up vote
0
down vote
Here is the solution of your problem which splits the comma separated values and also converts it in to Integer Array
String line = "1,2,3,1,2,2,1,2,3,";
//If you want only unique values
Set<Integer> set = Stream.of(line.split(",")).map(Integer::parseInt).collect(Collectors.toSet());
//If you want all values
List<Integer> list = Stream.of(documentMailIds.split(",")).map(Integer::parseInt).collect(Collectors.toList());
int uniqueNumbers = set.toArray();
int allNumbers = list.toArray();
It is more faster then conventional solution because it uses multi-core functionality at hardware level.
Extremely overkill for the purpose of learning how to use Java on a basic level, and unfortunately without accompanying explanation. Why is the second linedocumentMailIds
instead ofline
? Also doesn't add much to @MAG 's answer, and there is no guarantee that this will be executed in parallel. Just usingStream
doesn't allow parallel computation, you want a specific parallel Stream using theparallelStream
method on the Stream you got fromStream.of
.
– Tamoghna Chowdhury
Nov 15 at 12:23
add a comment |
up vote
0
down vote
Here is the solution of your problem which splits the comma separated values and also converts it in to Integer Array
String line = "1,2,3,1,2,2,1,2,3,";
//If you want only unique values
Set<Integer> set = Stream.of(line.split(",")).map(Integer::parseInt).collect(Collectors.toSet());
//If you want all values
List<Integer> list = Stream.of(documentMailIds.split(",")).map(Integer::parseInt).collect(Collectors.toList());
int uniqueNumbers = set.toArray();
int allNumbers = list.toArray();
It is more faster then conventional solution because it uses multi-core functionality at hardware level.
Extremely overkill for the purpose of learning how to use Java on a basic level, and unfortunately without accompanying explanation. Why is the second linedocumentMailIds
instead ofline
? Also doesn't add much to @MAG 's answer, and there is no guarantee that this will be executed in parallel. Just usingStream
doesn't allow parallel computation, you want a specific parallel Stream using theparallelStream
method on the Stream you got fromStream.of
.
– Tamoghna Chowdhury
Nov 15 at 12:23
add a comment |
up vote
0
down vote
up vote
0
down vote
Here is the solution of your problem which splits the comma separated values and also converts it in to Integer Array
String line = "1,2,3,1,2,2,1,2,3,";
//If you want only unique values
Set<Integer> set = Stream.of(line.split(",")).map(Integer::parseInt).collect(Collectors.toSet());
//If you want all values
List<Integer> list = Stream.of(documentMailIds.split(",")).map(Integer::parseInt).collect(Collectors.toList());
int uniqueNumbers = set.toArray();
int allNumbers = list.toArray();
It is more faster then conventional solution because it uses multi-core functionality at hardware level.
Here is the solution of your problem which splits the comma separated values and also converts it in to Integer Array
String line = "1,2,3,1,2,2,1,2,3,";
//If you want only unique values
Set<Integer> set = Stream.of(line.split(",")).map(Integer::parseInt).collect(Collectors.toSet());
//If you want all values
List<Integer> list = Stream.of(documentMailIds.split(",")).map(Integer::parseInt).collect(Collectors.toList());
int uniqueNumbers = set.toArray();
int allNumbers = list.toArray();
It is more faster then conventional solution because it uses multi-core functionality at hardware level.
answered Jun 7 at 7:25
Sunil Kanjar
1094
1094
Extremely overkill for the purpose of learning how to use Java on a basic level, and unfortunately without accompanying explanation. Why is the second linedocumentMailIds
instead ofline
? Also doesn't add much to @MAG 's answer, and there is no guarantee that this will be executed in parallel. Just usingStream
doesn't allow parallel computation, you want a specific parallel Stream using theparallelStream
method on the Stream you got fromStream.of
.
– Tamoghna Chowdhury
Nov 15 at 12:23
add a comment |
Extremely overkill for the purpose of learning how to use Java on a basic level, and unfortunately without accompanying explanation. Why is the second linedocumentMailIds
instead ofline
? Also doesn't add much to @MAG 's answer, and there is no guarantee that this will be executed in parallel. Just usingStream
doesn't allow parallel computation, you want a specific parallel Stream using theparallelStream
method on the Stream you got fromStream.of
.
– Tamoghna Chowdhury
Nov 15 at 12:23
Extremely overkill for the purpose of learning how to use Java on a basic level, and unfortunately without accompanying explanation. Why is the second line
documentMailIds
instead of line
? Also doesn't add much to @MAG 's answer, and there is no guarantee that this will be executed in parallel. Just using Stream
doesn't allow parallel computation, you want a specific parallel Stream using the parallelStream
method on the Stream you got from Stream.of
.– Tamoghna Chowdhury
Nov 15 at 12:23
Extremely overkill for the purpose of learning how to use Java on a basic level, and unfortunately without accompanying explanation. Why is the second line
documentMailIds
instead of line
? Also doesn't add much to @MAG 's answer, and there is no guarantee that this will be executed in parallel. Just using Stream
doesn't allow parallel computation, you want a specific parallel Stream using the parallelStream
method on the Stream you got from Stream.of
.– Tamoghna Chowdhury
Nov 15 at 12:23
add a comment |
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f121756%2fconverting-the-comma-seprated-numeric-string-into-int-array%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
2
Duplicated from SO: stackoverflow.com/q/35764996/3207406
– oliverpool
Mar 3 '16 at 7:12