数组使用java在数组中移动起始数字和最后一个特殊字符
我有一个数组 int arr[]={1,$,2,3,$,$,4,5} 并希望输出为 arr[]={1,2,3,4,5,$,$,$,$} 你能帮帮我吗 我的代码是数组使用java在数组中移动起始数字和最后一个特殊字符,java,arrays,Java,Arrays,我有一个数组 int arr[]={1,$,2,3,$,$,4,5} 并希望输出为 arr[]={1,2,3,4,5,$,$,$,$} 你能帮帮我吗 我的代码是 public class ArrayTest { static void splitString(String str) { StringBuffer alpha = new StringBuffer(), num = new StringBuffer(), special = new
public class ArrayTest
{
static void splitString(String str)
{
StringBuffer alpha = new StringBuffer(),
num = new StringBuffer(), special = new StringBuffer();
for (int i=0; i<str.length(); i++)
{
if (Character.isDigit(str.charAt(i)))
num.append(str.charAt(i));
else
special.append(str.charAt(i));
}
System.out.print(num);
System.out.print(special);
}
public static void main(String args[])
{
String str = "1,2,$,$,3,4";
splitString(str);
}
}
公共类数组测试
{
静态void splitString(String str)
{
StringBuffer alpha=新的StringBuffer(),
num=新StringBuffer(),special=新StringBuffer();
对于(inti=0;i排序不是单个活动。排序实际上是排序和比较
您可以使用Java内置排序,但可以使用自己的比较器(知道如何比较的代码片段)
您的比较器,需要确保特殊符号刚好大于任何其他值(并且等于任何其他特殊符号)。如果两个比较值都不是特殊符号,则进行普通比较
下面是其他问题的链接,解释了如何做到这一点:
从您的输出中,我可以看到您的函数在排序中也包含逗号。您必须在对字符串排序之前删除逗号:
str = str.replaceAll(",", "");
这行代码将用零替换所有逗号,或者换句话说,删除它们。现在您可以执行排序算法并在末尾添加逗号:
String merge = num.toString() + special.toString();
String result = "";
for (int i = 0; i < merge.length(); ++i) {
result += merge.charAt(i) + ",";
}
现在,result
保存了想要的结果。到目前为止您尝试了什么?您到底被卡在哪里了?请查看:$
到底是什么?我无法将特殊字符从原始位置移动到可能的重复位置
result = result.substring(0, result.length() - 1);