`
java-mans
  • 浏览: 11415556 次
文章分类
社区版块
存档分类
最新评论

去掉重复字符串并排序 例如12342343454565678789->123456789

 
阅读更多

/*
* 文 件 名: StringCombin.java
* 版 权:
* 描 述: <描述>
* 修 改 人: hpli/025415
* 修改时间: 2011-6-11
* 跟踪单号: <跟踪单号>
* 修改单号: <修改单号>
* 修改内容: <修改内容>
*/
package com.util;

/**
* 去掉重复字符串 例如12342343454565678789->123456789
*
*
* @author hpli/025415
* @version [版本号, 2011-6-11]
* @see [相关类/方法]
* @since [产品/模块版本]
*/
public class StringCombin
{
public static String fatherString = "";

public static String getString(String str)
{
String stmp = "";
int i;
c: for (i = fatherString.length(); i < str.length(); i++)
{
if (fatherString.contains(String.valueOf(str.charAt(i))))
{
int origin = i;
int j;
if (i == str.length() - 1)
{
String tempString = str.substring(str.length() - 2);
if (!fatherString.contains(tempString))
fatherString += tempString;
break;
}
else if (i == str.length())
{
fatherString += str.substring(str.length() - 1);
break;
}
for (j = origin + 1; j < str.length(); j++)
{
String innString = str.substring(origin, j);
if (fatherString.contains(innString))
{
}
else
{
if (j - origin > 2)
{
StringBuffer sb = new StringBuffer(str);
stmp = sb.delete(origin, j - 1).toString();
fatherString = "";
break c;
}
else
{
stmp = str;
fatherString = fatherString
+ str.substring(origin, j - 1);

break;
}
}
}
}
else
{
fatherString = fatherString + String.valueOf(str.charAt(i));
}
}
if (i == str.length())
{
return fatherString;
}
System.out.println(stmp + "_" + fatherString);
return getString(stmp);
}

public static void main(String[] args)
{
String str = "12342343454565678789a";
System.err.println(getString(str));
}
}

方案二:

/**
* 去掉重复字符串并排序 例如12342343454565678789->123456789
*
* @author hpli/025415
* @version [版本号, 2012-5-28]
* @see [相关类/方法]
* @since [产品/模块版本]
*/
public class StringCombin{

public static String temp = "";

public static List<String> list = new ArrayList<String>();

public static void getStr(String str) {

for (int i = 0; i < str.length(); i++) {

if (!temp.contains(String.valueOf(str.charAt(i)))) {

temp += String.valueOf(str.charAt(i));

list.add(String.valueOf(str.charAt(i)));
}
}

Collections.sort(list);
}

public static void main(String[] args) {

String str = "12933215488485452151adfjksadfkcccvcdsfsdfsdfsd";

getStr(str);

String temp = "";

for (int i = 0; i < list.size(); i++) {
temp += list.get(i);
}

System.err.println(temp);
}
}


分享到:
评论

相关推荐

    freemarker总结

    trim:去掉字符串前后的空白字符 下面是集合的常用内建函数 size:获取序列中元素的个数 下面是数字值的常用内建函数 int:取得数字的整数部分,结果带符号 例如: &lt;#assign test="Tom & Jerry"&gt; ${test?html} $...

    禅道项目管理软件 6.2.stable 版

    1124 重新实现dao里面的检查字符串长度的计算方式 1359 项目导入bug的时候,自动计算模块 1199 linux一键安装包的控制脚本初始化对xampp变量的设置 1434 调整产品各个操作的界面。 1347 一键安装包首页居中对齐。 ...

    LeetCode判断字符串是否循环-LeetCode:我的代码

    LeetCode判断字符串是否循环 LeetCode 创建一个字典,判断字典里是否含有target-nums[i] 主要是对迭代器的考察 定义滑动窗口,窗口内不需要再过一遍 类似分治法对两个序列进行排序 方法1:暴力循环,时间复杂度高 n^...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    varchar2 1~4000字节 可变长度字符串,与CHAR类型相比,使用VARCHAR2可以节省磁盘空间,但查询效率没有char类型高 数值类型 Number(m,n) m(1~38) n(-84~127) 可以存储正数、负数、零、定点数和精度为38位的浮点数...

    VBSCRIP5 -ASP用法详解

    Trim 函数 返回去掉前导空格或末尾空格的字符串副本。 三态常数 在代码中使用,以便表示每个显示的值。 True 其值为 -1 的关键字。 TypeName 函数 返回一字符串,它提供了关于变量的变体子类型信息。 UBound ...

    精髓Oralcle讲课笔记

    --(将sal的查询结果转化为字符串,与ename连接到一起,相当于Java中的字符串连接) 7、select ename||'afasjkj' from emp; --字符串的连接 8、select distinct deptno from emp; --消除deptno字段重复的值 9、...

    VBSCRIPT中文手册

    Trim 函数 返回去掉前导空格或末尾空格的字符串副本。 三态常数 在代码中使用,以便表示每个显示的值。 True 其值为 -1 的关键字。 TypeName 函数 返回一字符串,它提供了关于变量的变体子类型信息。 UBound ...

    vb Script参考文档

    Trim 函数 返回去掉前导空格或末尾空格的字符串副本。 三态常数 在代码中使用,以便表示每个显示的值。 True 其值为 -1 的关键字。 TypeName 函数 返回一字符串,它提供了关于变量的变体子类型信息。 UBound ...

    VBScript 语言参考中文手册CHM

    Trim 函数 返回去掉前导空格或末尾空格的字符串副本。 三态常数 在代码中使用,以便表示每个显示的值。 True 其值为 -1 的关键字。 TypeName 函数 返回一字符串,它提供了关于变量的变体子类型信息。 UBound ...

    VBScript 语言参考

    Trim 函数 返回去掉前导空格或末尾空格的字符串副本。 三态常数 在代码中使用,以便表示每个显示的值。 True 其值为 -1 的关键字。 TypeName 函数 返回一字符串,它提供了关于变量的变体子类型信息。 UBound ...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    -Window的Target属性由字符串类型变为枚举类型,注意更新以前的代码:Target="_self" -&gt; Target="Self", Target="_parent" -&gt; Target="Parent"。 -MenuButton, LinkButton, Button, LinkButtonField的...

    ExtAspNet_v2.3.2_dll

    -Window的Target属性由字符串类型变为枚举类型,注意更新以前的代码:Target="_self" -&gt; Target="Self", Target="_parent" -&gt; Target="Parent"。 -MenuButton, LinkButton, Button, LinkButtonField的...

    orcale常用命令

    SQL&gt;select table_name,cache from user_tables where instr(cache,'Y')&gt;0; 3、索引 查看索引个数和类别 SQL&gt;select index_name,index_type,table_name from user_indexes order by table_name; 查看索引被...

    EXCEL集成工具箱V6.0

    可以生成含重复值与不含重复值并可选是否排序的连接字符串。连接上万个字符只需短短1分钟即完成。 【隔行插入】 在当前工作表中允许从M行到N行,隔X行插入Y行,并允许是否需复制标题Z行。 【制作工资条】 瞬间将...

    MYSQL常用命令大全

    MySQL以YYYY-MM-DD格式来显示DATE值,但是允许你使用字符串或数字把值赋给DATE列 4.CHAR(M) 型:定长字符串类型,当存储时,总是是用空格填满右边到指定的长度 5.BLOB TEXT类型,最大长度为65535(2^16-1)个字符...

    EXCEL集成工具箱V8.0完整增强版(精简)

    可以生成含重复值与不含重复值并可选是否排序的连接字符串。连接上万个字符只需短短1分钟即完成。 【隔行插入】 在当前工作表中允许从M行到N行,隔X行插入Y行,并允许是否需复制标题Z行。 【制作工资条】 瞬间将...

    MySQL命令大全

    MySQL以YYYY-MM-DD格式来显示DATE值,但是允许你使用字符串或数字把值赋给DATE列 4.CHAR(M) 型:定长字符串类型,当存储时,总是是用空格填满右边到指定的长度 5.BLOB TEXT类型,最大长度为(2^16-1)个字符。 6...

    【Robotframework】列表List的常用操作.pdf

    list去重并检查不包含重复数据 ${listnew} Remove Duplicates ${list} List Should Not Contain Duplicates ${listnew} 在log中会打印出来去掉了⼏个重复数据: 20201015 18:46:47.647 : INFO : 1 duplicate removed...

    MySql基本查询、连接查询、子查询、正则表达查询讲解

    “字符串”表示指定用来匹配的字符串,该字符串必须加单引号或双引号。 通配符: % 任意字符 [sql] view plain copy select * from STUDENT where STU_NAME LIKE '%王'; 表示匹配任何以王结尾的 [sql] view ...

    最新JAVA编程题全集_50题及答案

    * @param base 以该字符串作为基础字符串,进行选择性组合。 * @param buff 所求字符串的临时结果 * @param result 存放所求结果 */ public static List&lt;String&gt; list(String base,String buff){ List...

Global site tag (gtag.js) - Google Analytics