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
2 hours ago
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.4k12121349
96.4k12121349
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,399523
2,399523
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
2 hours ago
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
2 hours ago
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
2 hours ago
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
2 hours ago
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
2 hours ago
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
2 hours ago
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
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
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
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
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
2
Duplicated from SO: stackoverflow.com/q/35764996/3207406
– oliverpool
Mar 3 '16 at 7:12