英文:
I want to print a 1-dimensional array using a for loop neatly. (java)
问题
我正试图打印一个一维数组,并以清晰标记的输出形式呈现出来。我有一个不带参数的方法,用于打印这个一维数组,到目前为止,我已经创建了一个循环,它从id[0]到id[n-1]打印了数组的内容。我想要完成的主要任务是在我的主方法中,我调用显示一个数组的方法 3 次。输出需要清楚地定义每次调用的结果。例如:部分 A 的结果:(43,45,43,4,5,)。我应该使用 printf,或者我应该如何解决这个问题?我已经尝试在这个网站上查找了一段时间,但是没有找到足够具体的内容来帮助我。
到目前为止,我有:
public void displaySubsets(){
for(int i : array) {
System.out.print("(");
System.out.print(array[i]);
System.out.print(")");
}
英文:
I am trying to print a 1-dimensional array in a clearly labeled output presentation. I have a method that takes no arguments to print the one-dimensional array, and so far I've created a for loop that prints the contents of the array from id[0] to id[n-1]. The main task I want to accomplish is in my main method I call the method that displays an array 3 times. The output needs to clearly define the results for each call. Ex: Results for part A : (43,45,43,4,5,). Should I use printf or how should I approach the problem. Tried looking on this site for a while, but couldn't find anything specific enough to help.
So far I have
public void displaySubsets(){
for(int i : array) {
System.out.print("(");
System.out.print(array[i]);
System.out.print(")");
}
答案1
得分: 2
你只需执行以下操作:
System.out.println(Arrays.toString(array));
或者如果你想自己编写代码(假设数组不为空或为null):
System.out.print("(" + array[0]);
for (int i = 1; i < array.length; i++) {
System.out.print(", " + array[i]);
}
System.out.println(")");
英文:
You can just do the following:
System.out.println(Arrays.toString(array));
or if you want to roll your own. (assumes the array is not empty or null).
System.out.print("(" + array[0]);
for (int i = 1; i < array.length; i++) {
System.out.print(", " + array[i]);
}
System.out.println(")");
</details>
# 答案2
**得分**: 0
## 以下是一种实现方法:
遍历数组并将数字拼接到新的字符串变量中。
```java
static void printArray(){
String printFormat = "";
System.out.println("数组长度: " + array.length);
//遍历数组
for (int i=0; i < array.length; i++) {
if (i+1 == array.length){
//如果是数组中的最后一个值,我们不想添加", "
//将数组的值拼接到新的字符串中,不带", "
printFormat = printFormat + array[i];
}else{
//将数组的值拼接到新的字符串中
printFormat = printFormat + array[i] + ", ";
}
}
System.out.println("部分 A 的结果 : (" + printFormat + ")");
}
点击这里运行代码
英文:
Here is one way of doing it:
Iterate over the array an concatenating the numbers into a new string variable.
static void printArray(){
String printFormat = "";
System.out.println("Array Length: " + array.length);\
//iterate over the array
for (int i=0; i < array.length; i++) {
if (i+1 == array.length){
//If is the last value in the array we don't want to add the ", "
//concatenate the array's value into a new string without ", "
printFormat = printFormat + array[i];
}else{
//concatenate the arrays value into a new string
printFormat = printFormat + array[i] +", ";
}
}
System.out.println("Results for part A : (" + printFormat + ")");
}
Click here to run the code
答案3
得分: 0
有不止一种方法可以做到:
我会选择我们的朋友“Java 8 Streams”,具体来说是Arrays类的stream()方法。它使代码更加优雅,直观且高效。
package com.example;
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int arr[] = { 43, 45, 43, 4, 5 };
System.out.print("(");
Arrays.stream(arr)
.forEach( e -> System.out.print(e + ",") );
System.out.println(")");
}
}
> 输出:(43,45,43,4,5,)
英文:
There's more than 1 way to do it:
I would opt for our friend "Java 8 Streams", more specifically the stream() method of Arrays class. It makes it elegant, intuitive and efficient.
package com.example;
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int arr[] = { 43, 45, 43, 4, 5 };
System.out.print("(");
Arrays.stream(arr)
.forEach( e -> System.out.print(e + ",") );
System.out.println(")");
}
}
> Output: (43,45,43,4,5,)
答案4
得分: 0
有很多方法可以解决这个问题。
替代方案1
你可以这样做:
System.out.println(Arrays.toString(array));
就像其他人提到的那样。
替代方案2
public static void main(String[] args) {
Main main = new Main();
int array[] = {43, 45, 43, 4, 5};
System.out.println(main.printArray(array));
}
public String printArray(int[] array) {
StringBuilder builder = new StringBuilder();
builder.append("(");
for (int i : array) {
builder.append(i);
builder.append(", ");
}
builder.append(")");
return builder.toString();
}
在打印方面,我喜欢使用 StringBuilder,因为它比直接使用 System.out.println() 更快。
希望对你有用!
英文:
There are many ways you can solve this.
Alternative 1
One way you can do this is just do:
System.out.println(Arrays.toString(array));
Like other mentioned.
Alternative 2
public static void main(String[] args) {
Main main = new Main();
int array[] = {43,45,43,4,5};
System.out.println(main.printArray(array));
}
public String printArray(int[] array){
StringBuilder builder = new StringBuilder();
builder.append("(");
for(int i : array){
builder.append(i);
builder.append(", ");
}
builder.append(")");
return builder.toString();
}
I like to use StringBuilder when it comes to printing because it's faster than just doing System.out.println().
Hope it was useful!
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论