package com.removesamestring;
import java.io.BufferedWriter;
import java.util.ArrayList;
import java.util.Date;
import java.util.List; public class Removesamestring { public static void main(String[] args) {
String text = "test test text text remove remove string string";
System.out.println("strWay1:"+strWay1(text));
System.out.println("strWay2:"+strWay2(text));
}
//方法一
public static String strWay1(String text) {
String[] str = text.split(" ");
if(str.length == 0) {
return null;
}
List<String> list = new ArrayList<String>();
StringBuffer sb = new StringBuffer();
for(int i = 0;i < str.length; i++) {
if(!list.contains(str[i])){
list.add(str[i]);
sb.append(str[i]+" ");
}
}
return sb.toString().substring(0,sb.toString().length()-1);
}
//方法二
public static String strWay2(String text) {
String[] str = text.split(" ");
ArrayList<String> as = new ArrayList<>();
f:for(int i = 0; i < str.length;i++) {
for(int j = 0; j < as.size();j++ ) {
if(str[i].equals(as.get(j))) {
continue f;//里层的循环continue直接跳出外层循环,继续执行外层循环
}
}
as.add(str[i]);
}
StringBuffer buffer = new StringBuffer();
for(String string : as) {
buffer.append(string+" ");
}
return buffer.toString().substring(0,buffer.toString().lastIndexOf(" "));
}
}

在学习的过程中,又发现了一个新的知识点,java 中的冒号(:),可以这么来用:用作跳转标记。解释如图中红色注释。
下面来回忆一下另外三种用法:

  • 其一: 用来遍历

    String[] abc = new String[3]{"a","b","c"};
    for (String str : abc){
    System.out.println(str); //这个地方的冒号就是遍历abc的集合,取出每一个元素
    }
  • 其二: 三元运算符   Boolean ? true的内容:false的内容

    int a=1;
    int b=3;
    int i = a>b?3:1;//这个地方的冒号用来选择值,如果a大于b,那么i=3(true),否则i=1(false)
  • 其三:  switch选择

    .....
    switch (i) {
    case "AUS":
    URL= GetComposedParameters("globalfund", "AUS", "no", "no", "en-AU", "A4","");
    break;
    case "GFRP1":
    URL= GetComposedParameters("globalfundp1", "", "no", "no", "en-GB", "A4","");
    break;
    case "NZ":
    URL= GetComposedParameters("globalfund", "NZ", "no", "no", "en-NZ", "A4","");
    break;
    }
    return URL;

  //用于switch选择,当i等于下面的值事,执行后面的操作,然后break跳出; 如果没有break,那么将执行下面的oprate操作,一直到底!

Java去重字符串的两种方法以及java中冒号的使用的更多相关文章

  1. 【java基础 13】两种方法判断hashmap中是否形成环形链表

    导读:额,我介绍的这两种方法,有点蠢啊,小打小闹的那种,后来我查了查资料,别人都起了好高大上的名字,不过,本篇博客,我还是用何下下的风格来写.两种方法,一种是丢手绢法,另外一种,是迷路法. 这两种方法 ...

  2. 在PHP代码中处理JSON 格式的字符串的两种方法:

    总结: 在PHP代码中处理JSON 格式的字符串的两种方法: 方法一: $json= '[{"id":"1","name":"\u ...

  3. JAVA写JSON的三种方法,java对象转json数据

    JAVA写JSON的三种方法,java对象转json数据 转自:http://www.xdx97.com/#/single?bid=5afe2ff9-8cd1-67cf-e7bc-437b74c07a ...

  4. 实验04——java保留小数的两种方法、字符串转数值

    package cn.tedu.demo; import java.text.DecimalFormat; /** * @author 赵瑞鑫 E-mail:1922250303@qq.com * @ ...

  5. Java 创建线程的两种方法

    Java提供了线程类Thread来创建多线程的程序.其实,创建线程与创建普通的类的对象的操作是一样的,而线程就是Thread类或其子类的实例对象.每个Thread对象描述了一个单独的线程.要产生一个线 ...

  6. java动态代理的两种方法

    动态代理,有两种情况,第一种是有接口的情况下,你可以选择为jdk自带的动态代理的方式来编写程序,但你想要为一个实在的类编写动态代理的方式的话,这时候就必须选择一些开源的lib包,如cglib包,同时还 ...

  7. Java创建线程的两种方法

    大多数情况,通过实例化一个Thread对象来创建一个线程.Java定义了两种方式: 实现Runnable 接口: 可以继承Thread类. 下面的两小节依次介绍了每一种方式. 实现Runnable接口 ...

  8. java打印等腰三角形的两种方法!(根据行数,根据底边长度)

    首先来看根据用户输入的底边的长度判断: package cn.edu.nwpu.java; import java.util.Scanner; public class IsoscelesTriang ...

  9. java web 读取配置文件两种方法

    package com.tsinghua.getDataBaseConn; import java.io.IOException;import java.io.InputStream;import j ...

随机推荐

  1. poj 1419 Graph Coloring

    http://poj.org/problem?id=1419 题意: 一张图黑白染色,相邻点不能都染黑色,最多能染几个黑色点 最大点独立集 但是图不能同构为二分图,不能用二分图匹配来做 那就爆搜吧 还 ...

  2. Git之远程库与本地库交互

    对于开发人员而言,有时候在公司干完会到家还得接着干,为了方便同步代码,于是乎,可通过GitHub代码托管平台实现代码云同步. GitHub账号开通.创建远程仓库及初始化等操作此处不做赘述: Git内部 ...

  3. What is an intuitive explanation of the relation between PCA and SVD?

    What is an intuitive explanation of the relation between PCA and SVD? 36 FOLLOWERS Last asked: 30 Se ...

  4. Redis学习六:Redis的持久化-AOF

    AOF(Append Only File) 一.是什么 以日志的形式来记录每个写操作,将Redis执行过的所有写指令记录下来(读操作不记录),只许追加文件但不可以改写文件,redis启动之初会读取该文 ...

  5. 提高PowerShell脚本效率的五个常用方法

    PowerShell脚本运行慢怎么办?影响到正常企业流程正常运转怎么办?本文利用例子和数据给大家带来让PowerShell运行更快的五个常用方法.本人拙见,希望能够给大家带来一点启发~ 1. 善用命令 ...

  6. springboot中使用Scheduled定时任务

    一:在程序入口类中添加注解@EnableScheduling @SpringBootApplication @EnableScheduling public class DemoApplication ...

  7. Django连接mysql常见错误

    1045, "Access denied for user 'root'@'localhost' (using password: YES)" 数据库的密码或用户名不对,查看set ...

  8. Python练习-三级菜单与"片儿"无关!

    # 编辑者:闫龙 #三级目录 menu = { '北京':{ '海淀':{ '五道口':{'soho':{},'网易':{},'google':{}}, '中关村':{'爱奇艺':{},'汽车之家': ...

  9. linux命令-grep+正则表达式用法

    目标文件/etc/passwd,使用grep命令或egrep 1.显示出所有含有root的行:egrep 'root' passwd 2.输出任何包含bash的所有行,还要输出紧接着这行的上下各两行的 ...

  10. php 传递赋值和地址赋值 &

    更多内容推荐微信公众号,欢迎关注: 1.传递赋值 $a = 1; $b = 2; $a = $b; echo $a,$b; //结果为:5 5 2.地址赋值 $a = 1; $b = 2; $a = ...