java大string排序_java中字符串排序,String 转化为int比较大小

引入题目

题目描述

设有nnn个正整数(n≤20)(n≤20)(n≤20),将它们联接成一排,组成一个最大的多位整数。

例如:n=3时,3个整数13,312,343联接成的最大整数为:343312133

又如:n=4时,4个整数7,13,4,246联接成的最大整数为:7424613

输入格式

第一行,一个正整数n。

第二行,n个正整数。

输出格式

一个正整数,表示最大的整数

------------------------------------------------------------解题思路----------------------------------------------------------

题目中要将给出的数字拼接在一起要得到最大的一个数,我们可以想到string中,str1=“12”;str2=“34”;则str1+str2=“1234”,所以我们可以直接将两个值进行string相加再比较是那种相加得到的值最大,依次将得到的最大的数放到最前面,循环到最后一个,即可以得到结果。在问题中有一个问题,java中的string不能像c++那样直接字符串相加减就可以得到结果进行比较,还需要将String转化成int进行比较,所以有以下两种方法

1:int x=Integer.parseInt(str1);使用Integer类中的parseInt()方法;

2:int y=Integer.valueOf(str2).intValue();使用Integer类中的valueOf()方法的intValue()方法;

----------------------------------------------代码---------------------------------------------------------------

package 洛谷;

import java.util.Scanner;

/*题目描述

设有nnn个正整数(n≤20)(n≤20)(n≤20),将它们联接成一排,组成一个最大的多位整数。

例如:n=3n=3n=3时,333个整数131313,312312312,343343343联接成的最大整数为:343312133433121334331213

又如:n=4n=4n=4时,444个整数777,131313,444,246246246联接成的最大整数为:742461374246137424613*/

public class P1012之前标号错了 {

public static void main(String[] args) {

Scanner sc=new Scanner(System.in);

while(sc.hasNext()) {

int n=sc.nextInt();

String a[]=new String[n];

for(int i=0;i

a[i]=sc.next();

}

for(int i=0;i

for(int j=i+1;j

int x=Integer.parseInt(a[i]+a[j]);

int y=Integer.parseInt(a[j]+a[i]);

if(x-y<0) {

String temp=a[i];

a[i]=a[j];

a[j]=temp;

}

}

}

for(int i=0;i

System.out.print(a[i]);

}

System.out.println();

}

}

}

----------------------------------------------------完结------------------------------------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值