Java和SQL实现取两个字符间的值

Java

String str = "abcdefg";
String result = str.substring(str.indexOf(">")+1, str.lastIndexOf("<"));
StringUtils.substringBefore(“abcdec”, “c”); 

结果是:ab 这里是以第一个”c”为标准。

StringUtils.substringBeforeLast(“abcdec”, “c”) 

结果为:abcde这里是以倒数第一个”c”为标准。

SQL

对“*”及以前的字符进行截取

在sql中可以使用下边函数进行截取特殊字符:

substr(str,instr(str,'*',1)+1)

其中,使用了substr函数和instr函数。

1、substr(string,start_position,[length])求子字符串,返回字符串

第一个参数表示要截取的字符串,第二个表示起始位置,第三个表示截取的长度,可省略。

2、instr(string,subString,position,ocurrence) 查找字符串的位置

第一个参数表示源字符串,第二个是要查找的字符,第三个是要查找的开始位置,第四个是查找的字符是第几个。

取一个字段中两个字符之间信息

1、如下

substring(a.specifications,charindex(':',a.specifications,charindex(';',specifications))+1,1)

SQL报错

FUNCTION db.charindex does not exist

2、使用substring_index语法

用法规则:

substring_index(“待截取有用部分的字符串”,“截取数据依据的字符”,截取字符的位置N)

具体要截取第N个逗号前部分的字符,在字符串中以逗号为索引,获取不同索引位的字符。

N可以为负数,表示倒数第N个索引字符后面的字符串。(有负号的时候,可以将整个字符倒过来看,依旧是第N个字符前面的部分。)

具体例子:

首先假定需要截取的字符串为“192;168;8;203”,这里截取的依据是分号:“;”

结果如下:

取第一个逗号前的字符串 :

SELECT SUBSTRING_INDEX(‘192;168;8;203',';',1);
==>得到结果为: 192

取最后逗号后面的部分:

SELECT SUBSTRING_INDEX(‘192;168;8,203',';',-1);
==>得到结果为: 203

取第2个逗号前那部分字符串里,最后逗号后面的部分

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(‘192;168;8;203',';',2),';',-1);
==>得到结果为: 168

取倒数第二个逗号后面部分字符串,再去这部分里第一个都号前的部分:

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(‘192;168;8,203',';',-2),';',1);
==> 得到结果为:8

java 两个字符串取交集

两个字符串取交集

public static void checkCommom(String str1, String str2) {
HashSet<String> result = new HashSet<String>();
        int length1 = str1.length();
        int length2 = str2.length();
        for (int i = 0; i < length1; i++) {
            for (int j = 0; j < length2; j++) {
                String char1 = str1.charAt(i) + "";
                String char2 = str2.charAt(j) + "";
                if (char1.equals(char2))
                {
                    result.add(char1);
                }
            }
        }

        Iterator<String> it = result.iterator();
        while (it.hasNext()) {
            String value = it.next();
            System.out.print(value);
        }
    }

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • java执行SQL语句实现查询的通用方法详解

    完成SQL查询 并将查询结果放入Vector容器,以便其他程序使用 /* * 执行sql查询语句 */ public static <T> Vector<T> executeQuery(Class<T> clazz, String sql, Object... args) { Connection conn = null; PreparedStatement preparedstatement = null; ResultSet rs = null; Vector<

  • Java执行SQL脚本文件到数据库详解

    本文实例为大家分享了Java执行SQL脚本文件到数据库的具体方式,供大家参考,具体内容如下 方式一:直接读取SQL脚本文件的内容,然后传递到SQL中. 代码:RunSqlService: @Autowired private RunSqlDao runSqlDao; /** * 读取文件内容到SQL中执行 * @param sqlPath SQL文件的路径:如:D:/TestProject/web/sql/脚本.Sql */ public void runSqlByReadFileContent

  • Java 比较字符串实例详解

     Java 比较字符串实例详解 公司让实现一个自动清除1小时内数据,SQL不熟悉,无奈之下,只能本地DB存储当前时间+小时去和当前时间进行比对.折腾好半天,突然想到Java提供了一个方法,也是进行字符串比较的,傻眼了.一起来看看吧~ CompareTo()方法简介 首先,它属于java.lang.String包下,是Java提供的一个字符串比较的方法,详情介绍如下: CompareTo()返回值: int 返回值类型分别有三种,小于0,等于0,大于0 1. 如果字符串相等返回值0: 2. 如果第

  • Java和SQL实现取两个字符间的值

    Java String str = "abcdefg"; String result = str.substring(str.indexOf(">")+1, str.lastIndexOf("<")); StringUtils.substringBefore("abcdec", "c"); 结果是:ab 这里是以第一个"c"为标准. StringUtils.substring

  • java 正则表达式获取两个字符中间的字符串方法

    搞社区APP的时候,需要实现这个功能: String filetext = "//@张小名: 25分//@李小花: 43分//@王力: 100分"; Pattern p = Pattern.compile("\\@(.*?)\\:");//正则表达式,取=和|之间的字符串,不包括=和| Matcher m = p.matcher(filetext); while(m.find()) { System.out.println(m.group(0));//m.group

  • java取两个字符串的最大交集

    本文实例讲述了java取两个字符串的最大交集的实现方法,分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: package com.itheima.net; public class Game13 {     public static void main(String[] args)     {         String s1 = "135adbfg67";         String s2 = "125dbf59";         Strin

  • java 数据类型有哪些取值范围多少

    java 数据类型: 在Java中,数据类型分为两大种:基本数据类型(值类型)和包装类型(引用数据类型).基本数据类型不是对象,不能调用toString().hashCode().getClass().equals()等方法. 8种基本数据类型-----8种包装类型  整型: byte Byte [-128,127] 1个字节([-2的7次方,2的7次方-1]) 一个字节有8位 short Short [-32768,32767] 2个字节([-2的15次方,2的15次方-1]) 2*8-1 i

  • Java多线程中线程的两种创建方式及比较代码示例

    1.线程的概念:线程(thread)是指一个任务从头至尾的执行流,线程提供一个运行任务的机制,对于java而言,一个程序中可以并发的执行多个线程,这些线程可以在多处理器系统上同时运行.当程序作为一个应用程序运行时,java解释器为main()方法启动一个线程. 2.并行与并发: (1)并发:在单处理器系统中,多个线程共享CPU时间,而操作系统负责调度及分配资源给它们. (2)并行:在多处理器系统中,多个处理器可以同时运行多个线程,这些线程在同一时间可以同时运行,而不同于并发,只能多个线程共享CP

  • Javascript和Java语言有什么关系?两种语言间的异同比较

    虽然Javascript与Java有紧密的联系,但却是两个公司开发的不同的两个产品.Java是Sun公司推出的新一代面向对象的程序设计语言.特别适合于Internet应用程序开发:而Javascript是Sun与Netscape公司联合推出的产品,是为了扩展Netscape Navigator功能而开发的一种可以嵌入Web页面中的基于对象和事件驱动的解释性语言.且它的前身是Live Script,而Java的前身是Oak语言.下面就对两种语言间的异同作如下比较: (1)基于对象和面向对象 Jav

  • java简单网页抓取的实现方法

    本文实例讲述了java简单网页抓取的实现方法.分享给大家供大家参考.具体分析如下: 背景介绍 一 tcp简介 1 tcp 实现网络中点对点的传输 2 传输是通过ports和sockets ports提供了不同类型的传输(例如 http的port是80) 1)sockets可以绑定在特定端口上,并且提供传输功能 2)一个port可以连接多个socket 二 URL简介 URL 是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址. 互联网上的每个文件都有一个唯一的

  • Java 连接Access数据库的两种方式

    java连接MS Access的两种方式: 1.JDBC-ODBC Java连接Access可以使用MS自带的管理工具-->数据源(ODBC)设置建立连接,这样就不需要导入jar.但是,如此一来程序部署的每个机器上都要进行设置不方面.所以现在不会使用啦. 2.JDBC java也可以和连接其他数据库一样连接MS Access,导入数据库相应的jar包,进行连接. 复制代码 代码如下: java Access JDBC jar包:Access_JDBC30.jar 具体连接,参考下面代码: 复制代

  • Java爬虫 信息抓取的实现

    今天公司有个需求,需要做一些指定网站查询后的数据的抓取,于是花了点时间写了个demo供演示使用. 思想很简单:就是通过Java访问的链接,然后拿到html字符串,然后就是解析链接等需要的数据.技术上使用Jsoup方便页面的解析,当然Jsoup很方便,也很简单,一行代码就能知道怎么用了: Document doc = Jsoup.connect("http://www.oschina.net/") .data("query", "Java") //

随机推荐