黑马程序员技术交流社区
标题:
整型字符串的逆序输出
[打印本页]
作者:
a80C51
时间:
2015-9-27 00:10
标题:
整型字符串的逆序输出
把字符串中的数字字符排序。
需求:"23 98 71 54 60"
结果:"23 54 60 71 98"
代码如下:
package com.practice.classpractice;
import java.util.Arrays;
/*
* 知识点:
* 1)String[] String.split(String regex)
* 根据给定正则表达式的匹配拆分此字符串。
* 2)int Integer.parseInt(String s) throws NumberFormatException
* 使用第二个参数指定的基数,将字符串参数解析为有符号的整数。
* 3)StringBuffer StringBuffer.append(int i)
* 将 int 参数的字符串表示形式追加到此序列。
* 4)String StringBuffer.toString()
* 返回此序列中数据的字符串表示形式。
* 5)String String.trim()
* 返回字符串的副本,忽略前导空白和尾部空白。
*/
public class MyReverseIntString {
public static void main(String[] args) {
// TODO Auto-generated method stub
//建立一个数组
String goalStr = "23 98 71 54 60";
//方法一,使用split方法将该字符串切割成字符数组。
//切分字符串,如果使用split()还是那个问题,是正则表达式
String[] sTempArray = goalStr.split(" ");
//方法二,通过使用substring来完成。
/*
* note1: indexOf的用法,如果没有找打指定字符串,则会返回-1
* note1标识处可能会出现角标越界异常
* note2:字符串在初始化的时候,默认为null
* 故note2标识处会出现空指针异常。
*/
/*
int stringNum = getIntNums(goalStr," ");
String[] sTempArray = new String[stringNum];
for(int i = 0;i<stringNum-1;i++)
{
int index = goalStr.indexOf(" ");
//note1最后一个字符串没有空格,故可能会返回-1,因此,上限值设置为stringNum-1
sTempArray[i] = goalStr.substring(0, index);//note1标识处可能会出现角标越界异常
goalStr = goalStr.substring(index+" ".length());
}
//note2:因为默认值是null,故无法调用concat()方法。
//sTempArray[stringNum-1].concat(goalStr);
sTempArray[stringNum-1]=goalStr;
*/
//新建一个数组对象,其长度为切割之后的字符串数组的长度
int[] iTempArray = new int[sTempArray.length];
//将每个字符串转换成int类型。
for (int i = 0; i < iTempArray.length; i++) {
iTempArray[i]=Integer.parseInt(sTempArray[i]);
}
//数组排序
Arrays.sort(iTempArray);
//新建一个字符缓冲
StringBuffer sb = new StringBuffer();
//用空格填充数组间隔
for (int j = 0; j < iTempArray.length; j++) {
sb.append(iTempArray[j]).append(" ");
}
//将字符缓冲区中的数组,转换成字符串,并去掉前后两端的空格
String sResult = sb.toString().trim();
System.out.println(sResult);
}
private static int getIntNums(String goalStr, String string) {
int index = goalStr.indexOf(string);
int count = 0;
while(index != -1)
{
goalStr = goalStr.substring(index+string.length());
index = goalStr.indexOf(string);
count++;
}
return count+1;
}
}
复制代码
关键易错的一些点,详见代码中的注释。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2