如何解决如何在Java中删除特定字符“,”?
我基本上想从我的12个整数数组中删除最后一个逗号“,”。我的输出类似于{23,45,54,56,67,87,89,90,76,23,}
,而我想删除最后一个逗号和它在逗号之后创建的空间。
样本输出:
{23,23}
我的任务是基本上使用冒泡排序方法对整数进行升序排序。我的输出基本上显示了每个阶段的排序和最终排序的数组。我想从每个阶段的排序,最终排序的数组和随机生成的数组中删除最后一个逗号及其创建的空间。我基本上在代码中提供了注释,这将帮助您找到每件事。
请不要将其变得过于复杂
代码:
// Create a class and method
class Main {
public static void main(String[] args) {
// Clear screen
System.out.print("\033[H\033[2J");
System.out.flush();
// Initialize a int array with the limit of 12
int[] numbers = new int[12];
// Create a statement
System.out.println("Random Generated Array:");
System.out.print("{");
// Start a for loop to print random numbers
for (int x = 0; x < numbers.length; x++) {
numbers[x] = (int) (Math.random() * 101); // So that it prints random numbers from 0 to 100 (inclusive)
// Print out the 12 random numbers
System.out.print(numbers[x] + ",");
}
System.out.print("}");
// Create space
System.out.println();
System.out.println();
// Create a statement
System.out.println("Sorting At Each Stage:");
// Start looping numbers until 12
for (int i = 0; i < numbers.length; i++) {
// Start looping numbers and comparing it to the "i" values
for (int j = i; j < numbers.length; j++) {
if (numbers[j] < numbers[i]) {
// Swap the positions of the numbers with the variable "temp"
int temp = numbers[j];
numbers[j] = numbers[i];
numbers[i] = temp;
}
// Create space
System.out.println();
// Use a for loop to print numbers at each stage of sorting
System.out.print("{");
for (int k = 0; k < numbers.length; k++) {
System.out.print(numbers[k] + ",");
}
System.out.print("}");
System.out.println();
}
}
// Create space
System.out.println();
System.out.println("\nBubble Sorted Array:");
System.out.print("{");
// Use a for loop to print the final sorted numbers in ascending order
for (int a = 0; a < numbers.length; a++) {
System.out.print(numbers[a] + ",");
}
System.out.print("}");
// Create space
System.out.println();
System.out.println();
}
}
解决方法
您可以在if
循环中使用for
条件,而不在最后一个数字上加上逗号:
// Start a for loop to print random numbers
for (int x = 0; x < numbers.length; x++) {
numbers[x] = (int) (Math.random() * 101); // So that it prints random numbers from 0 to 100 (inclusive)
if(x + 1 == numbers.length)
//Print out random number with no comma as it's the last
System.out.print(numbers[x]);
else
// Print out the 12 random numbers
System.out.print(numbers[x] + ",");
}
,
如果您希望看到将数组连接到字符串中的另一种方法,可以考虑Java 8流附带的功能。
这将流化数组,使用String :: valueOf将每个元素映射到字符串,然后将它们与定界符“,”一起收集。我只是在任一端都添加了一个括号以使其与您的工作相匹配。
import java.util.Arrays;
import java.util.stream.Collectors;
public class so64395137 {
public static void main(String[] args) {
int[] numbers = { 23,45,54,56,67,87,89,90,76,23 };
String strNumbers = "{" + Arrays.stream(numbers)
.mapToObj(String::valueOf).collect(Collectors.joining(","))
+ "}";
System.out.println(strNumbers);
}
}
打印:
{23,23}
,
我在循环中添加了if
,如果这是最后一次迭代,请不要添加多余的位。
// Create a class and method
class Main {
public static void main(String[] args) {
// Clear screen
System.out.print("\033[H\033[2J");
System.out.flush();
// Initialize a int array with the limit of 12
int[] numbers = new int[12];
// Create a statement
System.out.println("Random Generated Array:");
System.out.print("{");
// Start a for loop to print random numbers
for (int x = 0; x < numbers.length; x++) {
numbers[x] = (int)(Math.random() * 101); // So that it prints random numbers from 0 to 100 (inclusive)
if (x == numbers.length) {
// Print out the 12 random numbers
System.out.print(numbers[x]);
} else {
System.out.print(numbers[x] + ",")
}
System.out.print("}");
// Create space
System.out.println();
System.out.println();
// Create a statement
System.out.println("Sorting At Each Stage:");
// Start looping numbers until 12
for (int i = 0; i < numbers.length; i++) {
// Start looping numbers and comparing it to the "i" values
for (int j = i; j < numbers.length; j++) {
if (numbers[j] < numbers[i]) {
// Swap the positions of the numbers with the variable "temp"
int temp = numbers[j];
numbers[j] = numbers[i];
numbers[i] = temp;
}
// Create space
System.out.println();
// Use a for loop to print numbers at each stage of sorting
System.out.print("{");
for (int k = 0; k < numbers.length; k++) {
System.out.print(numbers[k] + ",");
}
System.out.print("}");
System.out.println();
}
}
// Create space
System.out.println();
System.out.println("\nBubble Sorted Array:");
System.out.print("{");
// Use a for loop to print the final sorted numbers in ascending order
for (int a = 0; a < numbers.length; a++) {
System.out.print(numbers[a] + ",");
}
System.out.print("}");
// Create space
System.out.println();
System.out.println();
}
}
System.out.println();
System.out.println();
}
}
,
您可以执行以下操作:
if(numbers.length > 0) {
int k;
// Print the first element preceded by '{'
System.out.print("{" + numbers[0] );
// Print the remaining but the last element
for (k = 1; k < numbers.length - 1; k++) {
System.out.print(numbers[k] + ",");
}
// Print the last element followed by '}'
System.out.print(numbers[k] + "}");
}
,
如果想要一种简单的方法,只需创建一个数组来保存数字的String值。然后使用String.join()
方法为您完成工作。
int[] numbers = new int[12];
String[] strings = new String[numbers.length];
for (int x = 0; x < numbers.length; x++) {
numbers[x] = (int) (Math.random() * 101); // So that it prints random numbers from 0 to 100 (inclusive)
strings[x] = Integer.toString(numbers[x]);
}
System.out.printf("{%s}%n",String.join(",",strings));
打印类似
{3,11,24,83,36,58,22,27,43,12,30,79}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。