Java去重字符串的两种方法以及java中冒号的使用
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中冒号的使用的更多相关文章
- 【java基础 13】两种方法判断hashmap中是否形成环形链表
导读:额,我介绍的这两种方法,有点蠢啊,小打小闹的那种,后来我查了查资料,别人都起了好高大上的名字,不过,本篇博客,我还是用何下下的风格来写.两种方法,一种是丢手绢法,另外一种,是迷路法. 这两种方法 ...
- 在PHP代码中处理JSON 格式的字符串的两种方法:
总结: 在PHP代码中处理JSON 格式的字符串的两种方法: 方法一: $json= '[{"id":"1","name":"\u ...
- JAVA写JSON的三种方法,java对象转json数据
JAVA写JSON的三种方法,java对象转json数据 转自:http://www.xdx97.com/#/single?bid=5afe2ff9-8cd1-67cf-e7bc-437b74c07a ...
- 实验04——java保留小数的两种方法、字符串转数值
package cn.tedu.demo; import java.text.DecimalFormat; /** * @author 赵瑞鑫 E-mail:1922250303@qq.com * @ ...
- Java 创建线程的两种方法
Java提供了线程类Thread来创建多线程的程序.其实,创建线程与创建普通的类的对象的操作是一样的,而线程就是Thread类或其子类的实例对象.每个Thread对象描述了一个单独的线程.要产生一个线 ...
- java动态代理的两种方法
动态代理,有两种情况,第一种是有接口的情况下,你可以选择为jdk自带的动态代理的方式来编写程序,但你想要为一个实在的类编写动态代理的方式的话,这时候就必须选择一些开源的lib包,如cglib包,同时还 ...
- Java创建线程的两种方法
大多数情况,通过实例化一个Thread对象来创建一个线程.Java定义了两种方式: 实现Runnable 接口: 可以继承Thread类. 下面的两小节依次介绍了每一种方式. 实现Runnable接口 ...
- java打印等腰三角形的两种方法!(根据行数,根据底边长度)
首先来看根据用户输入的底边的长度判断: package cn.edu.nwpu.java; import java.util.Scanner; public class IsoscelesTriang ...
- java web 读取配置文件两种方法
package com.tsinghua.getDataBaseConn; import java.io.IOException;import java.io.InputStream;import j ...
随机推荐
- poj 1419 Graph Coloring
http://poj.org/problem?id=1419 题意: 一张图黑白染色,相邻点不能都染黑色,最多能染几个黑色点 最大点独立集 但是图不能同构为二分图,不能用二分图匹配来做 那就爆搜吧 还 ...
- Git之远程库与本地库交互
对于开发人员而言,有时候在公司干完会到家还得接着干,为了方便同步代码,于是乎,可通过GitHub代码托管平台实现代码云同步. GitHub账号开通.创建远程仓库及初始化等操作此处不做赘述: Git内部 ...
- 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 ...
- Redis学习六:Redis的持久化-AOF
AOF(Append Only File) 一.是什么 以日志的形式来记录每个写操作,将Redis执行过的所有写指令记录下来(读操作不记录),只许追加文件但不可以改写文件,redis启动之初会读取该文 ...
- 提高PowerShell脚本效率的五个常用方法
PowerShell脚本运行慢怎么办?影响到正常企业流程正常运转怎么办?本文利用例子和数据给大家带来让PowerShell运行更快的五个常用方法.本人拙见,希望能够给大家带来一点启发~ 1. 善用命令 ...
- springboot中使用Scheduled定时任务
一:在程序入口类中添加注解@EnableScheduling @SpringBootApplication @EnableScheduling public class DemoApplication ...
- Django连接mysql常见错误
1045, "Access denied for user 'root'@'localhost' (using password: YES)" 数据库的密码或用户名不对,查看set ...
- Python练习-三级菜单与"片儿"无关!
# 编辑者:闫龙 #三级目录 menu = { '北京':{ '海淀':{ '五道口':{'soho':{},'网易':{},'google':{}}, '中关村':{'爱奇艺':{},'汽车之家': ...
- linux命令-grep+正则表达式用法
目标文件/etc/passwd,使用grep命令或egrep 1.显示出所有含有root的行:egrep 'root' passwd 2.输出任何包含bash的所有行,还要输出紧接着这行的上下各两行的 ...
- php 传递赋值和地址赋值 &
更多内容推荐微信公众号,欢迎关注: 1.传递赋值 $a = 1; $b = 2; $a = $b; echo $a,$b; //结果为:5 5 2.地址赋值 $a = 1; $b = 2; $a = ...