精华内容
下载资源
问答
  • java字符串分割成数组
    千次阅读
    2020-06-21 14:05:53

    将字符串拆分成数组和实现字符串组合
    不能使用语言的基本分割组合函数(如 Java 的 String.split, php 的 explode 和 implode)
    1) 字符串拆分成字符串数组,如"ab&&2"通过"&&“做分割符,分割得到字符串数组[“ab”, “2”]
    2) 实现字符串组合,如[“ab”, “2”]通过”&&“分隔符,组成字符串"ab&&2”

    1.字符串拆分成数组,如"ab&&2"通过"&&"做分割符,分割得到字符串数组[“ab”, “2”]

    	解题思路:
    	可以先将字符串拆分成一个字符数组,
    	遍历字符数组通过查找 "&&" 这个分割符来做分割处,找到其下标,
    	定义一个字符串数组来储存分割出来的字符串
    

    2.实现字符串组合,如[“ab”, “2”]通过"&&“分隔符,组成字符串"ab&&2”

     	解题思路:
    	想要把一个字符串数组 组合成一个字符串
    	以["ab", "2"]为例 可以通过去掉开头的[" 和结尾的 "]然后把 ", "转换成 &&符号的方法完成
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Scanner;import java.util.ArrayList;
    import java.util.List;
    import java.util.Scanner;
    public class Test01 {
    static Scanner sc = new Scanner(System.in);
    	public static void main(String[] args) {
    		test01();
    		test02();
    	}
    	//字符串拆分成数组,如"ab&&2"通过"&&"做分割符,分割得到字符串数组["ab", "2"]
    	public static void test01() {
    		// 输入一个字符串
    		String str = sc.nextLine();
    		// 定义一个字符串数组,储存分割得到的字符串
    		List<String> list = new ArrayList<String>();
    		// 输入的字符串的长度
    		int len = str.length();
    		// 把字符串拆分成字符数组
    		char[] ch = str.toCharArray();
    		int temp = 0;
    		for (int i = 0; i < len - 1; i++) {
    			// 查看是否出现分割符&&
    			if (ch[i] == '&' && ch[i + 1] == '&') {
    				list.add("\"" + str.substring(temp, i) + "\"");
    				i += 2;
    				temp = i;
    			}
    			// 查看是否最后出现了分割符&&没有就继续分割这个字符串
    			if ((i == len - 1 || i == len - 2) && (ch[i - 1] != '&' || ch[i] != '&')) {
    				list.add("\"" + str.substring(temp, len) + "\"");
    			}
    		}
    		// 输出这个字符数组
    		System.out.println(list.toString());
    
    	}
    
    	// 实现字符串组合,如["ab", "2"]通过"&&"分隔符,组成字符串"ab&&2"
    	public static void test02() {
    		// 输入这个字符串数组
    		String sList = sc.nextLine();
    		// System.out.println(sList);
    		// 同样将这个字符串拆分成拆分成一个字符数组
    		char[] ch = sList.toCharArray();
    		// 定义一个字符串缓冲类,通过字符串的拼接来组合成一个新的字符串。
    		StringBuffer sBuffer = new StringBuffer();
    		for (int i = 2; i < sList.length() - 2; i++) {
    			//字符串拼接
    			sBuffer.append(ch[i]);
    			//查找两个字符串的连接处 ", "
    			if (i < (sList.length() - 5) && ch[i + 1] == '\"' && ch[i + 2] == ',' && ch[i + 3] == ' '
    					&& ch[i + 4] == '\"') {
    				sBuffer.append("&&");
    				i += 4;
    			}
    		}
    		//输出这个重新组合成的字符串
    		System.out.println(sBuffer.toString());
    	}
    }
    
    更多相关内容
  • Java 字符串分割数组,保留分隔符。 自己记录一个字符传分割方法,适配单个字符分割,多个字符分割。

            在日常开发中,经常会用到字符串分割,一般使用split方法,但是这种简单的方法不能保留分割符号,于是自己动手造轮子,记录一个字符传分割方法,适配单个字符分割,多个字符分割,均可保留分割符。

    具体实现代码如下:

    public static void main(String[] args) {
            final String[] aEach = splitSentence("[(WD1){D5}][(h7m0){h3}][(WD1){D5}]", "\\]\\[");
            System.out.println(aEach.length);
            final String[] aEach1 = splitSentence("[(WD1){D5}][(h7m0){h3}][(WD1){D5}]", "\\{");
            System.out.println(aEach1.length);
            final String[] aEach2 = splitSentence("[(WD1){D5}][(h7m0){h3}][(WD1){D5}]", "\\]\\[\\(");
            System.out.println(aEach2.length);
        }
    
        /**
         * 通过分隔符拆分句子,并保留分隔符
         *
         * @return
         */
        public static String[] splitSentence(String sentence, String chars) {
            //1. 定义匹配模式
            Pattern p = Pattern.compile(chars);
            Matcher m = p.matcher(sentence);
    
            //2. 拆分句子[拆分后的句子符号也没了]
            String[] words = p.split(sentence);
            String afterChars = chars.replace("\\", "");
            //3. 保留原来的分隔符
            if (afterChars.length() != 2) {
                if (words.length > 0) {
                    int count = 0;
                    while (count < words.length) {
                        if (m.find()) {
                            words[count] += m.group();
                        }
                        count++;
                    }
                }
            } else {
                //chars.length() ==2
                if (words.length > 1) {
                    int count = 0;
                    String splitStr1 = afterChars.substring(0, 1);
                    String splitStr2 = afterChars.substring(1, 2);
                    while (count < words.length) {
                        if (count == 0) {
                            words[count] += splitStr1;
                        } else if (count == words.length - 1) {
                            words[count] = splitStr2 + words[count];
                        } else {
                            words[count] = splitStr2 + words[count] + splitStr1;
                        }
                        count++;
                    }
                }
            }
            return words;
        }

    运行结果:

    • 分隔符为2个字符

            aEach:以双分隔符"]["切分:结果:[(WD1){D5}] 、   [(h7m0){h3}]  、 [(WD1){D5}]

    • 分割符为单个字符

            aEach1:以双分隔符"}"切分:结果:[(WD1){D5}  、 ][(h7m0){h3}  、 ][(WD1){D5}  、]

    • 风格符为3个字符

    aEach2:以双分隔符"][}"切分:结果:[(WD1){D5}][(  、 h7m0){h3}][(   、  WD1){D5}]

    ---------------------------------------------------------------------------------------------------------------------------------

    幸福的人生,需要三种姿态:对过去,要淡;对现在,要惜;对未来,要信。

    展开全文
  • 下面小编就为大家分享一篇Java中将String类型依照某个字符分割成数组的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 主要介绍了Java StringUtils字符串分割转数的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 而且,我貌似是将《算法刷题LeetCode中文版》、《算法的乐趣》大概都过了一遍,尤其是这本 《算法刷题LeetCode中文版》总共有15个章节:编程技巧、线性表、字符串、栈和队列、树、排序、查找、暴力枚举法、广度优先...

    Redis简介

    • Redis与Memcached区别
    • Redis优点
    • Redis缺点

    image

    Redis数据类型

    • String
    • Hash
    • List
    • Set
    • Sorted set

    image

    Redis事务

    • MULTI&EXEC(原子执行,并非互斥)
    • WATCH&UNWATCH(原子执行+乐观锁)

    image

    Redis分布式锁

    • 排他锁 SETNX
    • 带有超时特性的锁

    image

    Redis持久化机制

    • RDB(Redis Database,全量模式)
    • AOF(Append Only File,增量模式)
    • 触发方式
    • 相互比较
    • RDB最佳策略
    • AOF最佳策略
    • Redis消息队列

    image

    Redis高级数据结构

    • BitMap(String的一些其他命令)
    • 过期策略
    • 内存淘汰策略
    • 主从复制(数据是同步的,类似于MySQL Replication)
    • 哨兵 sentinel(数据是同步的)
    • 集群(数据是分片的,sharing)
    • Hash映射(并非一致性哈希,而是哈希槽)
    • 数据分片
    • 节点间通信协议——Gossip
    • 主从选举——Raft
    • 功能限制
    • 数据迁移/在线扩容
    • Codis
    • twemproxy

    image

    配置文件+应用场景+Lua脚本+与DB保持一致

    image

    Redis源码

    • 线程模型——单线程
    • RedisObject

    image

    这份文档从构建一个键值数据库的关键架构入手,不仅带你建立起全局观,还帮你迅速抓住核心主线。除此之外,还会具体讲解数据结构、线程模型、网络框架、持久化、主从同步和切片集群等,帮你搞懂底层原理。相信这对于所有层次的Redis使用者都是一份非常完美的教程了。

    总结

    三个工作日收到了offer,头条面试体验还是很棒的,这次的头条面试好像每面技术都问了我算法,然后就是中间件、MySQL、Redis、Kafka、网络等等。

    如果你对下面我说的这些笔记感兴趣,可以点赞+关注后,戳这里即可免费领取

    • 第一个是算法

    关于算法,我觉得最好的是刷题,作死的刷的,多做多练习,加上自己的理解,还是比较容易拿下的。

    而且,我貌似是将《算法刷题LeetCode中文版》、《算法的乐趣》大概都过了一遍,尤其是这本

    《算法刷题LeetCode中文版》总共有15个章节:编程技巧、线性表、字符串、栈和队列、树、排序、查找、暴力枚举法、广度优先搜索、深度优先搜索、分治法、贪心法、动态规划、图、细节实现题

    最新出炉,头条三面技术四面HR,看我如何一步一步攻克面试官?

    《算法的乐趣》共有23个章节:

    最新出炉,头条三面技术四面HR,看我如何一步一步攻克面试官?

    最新出炉,头条三面技术四面HR,看我如何一步一步攻克面试官?

    • 第二个是Redis、MySQL、kafka(给大家看下我都有哪些复习笔记)

    基本上都是面试真题解析、笔记和学习大纲图,感觉复习也就需要这些吧(个人意见)

    最新出炉,头条三面技术四面HR,看我如何一步一步攻克面试官?

    • 第三个是网络(给大家看一本我之前得到的《JAVA核心知识整理》包括30个章节分类,这本283页的JAVA核心知识整理还是很不错的,一次性总结了30个分享的大知识点)

    26859908493)]

    • 第三个是网络(给大家看一本我之前得到的《JAVA核心知识整理》包括30个章节分类,这本283页的JAVA核心知识整理还是很不错的,一次性总结了30个分享的大知识点)

    最新出炉,头条三面技术四面HR,看我如何一步一步攻克面试官?

    展开全文
  • 第一部分 项目+自我介绍 首先上来简单做一下自我介绍? 然后让介绍简历里的项目,说下项目里的难点,技术架构。 ...平时开发过程中都遇到过哪些难题?...第二部分 java基础方面 ...说说java泛型,为什么称java泛型为伪泛

    第一部分 项目+自我介绍

    • 首先上来简单做一下自我介绍?

    • 然后让介绍简历里的项目,说下项目里的难点,技术架构。

    • 平时开发过程中都遇到过哪些难题?

    • 平时都这么和同事沟通?

    第二部分 java基础方面

    • 首先还是老生常谈的hashmap。hashmap的set和get的时间复杂度是多少?为什么是O(1), hashmap 在jdk1.8是线程安全的吗?

    • 为什么是线程安全的?concureenthashmap了解吗?他是如何实现线程安全的?

    • 说说java泛型,为什么称java泛型为伪泛型?泛型的好处有哪些?int可以作为泛型类型吗?

    • 说一说静态***和动态***的区别?动态***的底层是怎么实现的?

    • 线程run和start的区别?两次start同一个线程会怎么样?

    • 说一下java的线程模型?说一下violate关键字?他的原理是什么?violate是线程安全的吗?说一下violate和synchronized这两个关键字的区别?

    • 说下线程池的原理?有没有在项目中用过线程池?怎么用的?核心线程和非核心线程有什么区别?你在项目里怎么确定核心线程数的。

    • 对concureent包了解吗?什么是cas?cas怎么解决ABA问题?讲一下CountDownLatch和cyclicBarrier的区别?

    • 说一下java类加载器的工作机制?讲一下JVM相关。有没有做货GC调优,讲一下这么做的?

    第三部分 spring框架方面

    • BeanFactory 和 和 ApplicationContext 有什么区别?

    • 如何用基于 XML 配置的方式配置 Spring

    • 说一下springboot的启动过程?平时开发中都用哪些注解?

    • Spring 是如何快速创建产品就绪应用程序的?

    • 如何使用 Spring Boot 部署到不同的服务器?

    第四部分 数据库与java中间件方面

    • redis常用的数据结构有哪几种,在你的项目中用过哪几种,以及在业务中使用的场景,?redis cluster有没有了解过,怎么做到高可用的?

    • redis集群和哨兵机制有什么区别?redis的持久化机制了解吗?你们在项目中是怎么做持久化的?遇到过redis的hotkey吗?怎么处理的?redis是单线程的吗?单线程为什么还这么快?redis实现分布式锁以及和zk实现的性能和稳定性的对比?

    • kafka的原理?怎么保证消息不丢失?

    • 索引的常见实现方式有哪些,有哪些区别?MySQL的存储引擎有哪些,有哪些区别?InnoDB使用的是什么方式实现索引,怎么实现的?说下聚簇索引和非聚簇索引的区别?

    • 大量的消息每页被消费,能否发生 oom 异常?

    • 向不存在的 exchange 发 publish 消息会发生什么?向不存在的queue 执行 consume 动作会发生什么?

    • 为什么不应该对所有的 message 都使用持久化机制?

    第五部分 算法方面(总共是问了两个)

    • 一面手写的题是leetcode 106. 从中序与后序遍历序列构造二叉树,根据一棵树的中序遍历与后序遍历构造二叉树。(注意:你可以假设树中没有重复的元素。)

    例如,给出 中序遍历 inorder = [9,3,15,20,7] 后序遍历 postorder = [9,15,7,20,3] 返回如下的二叉树: 3 / \ 9 20 / \ 15 7

    • 二面手写的题是 leetcode 86. 分隔链表

    给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。你应当保留两个分区中每个节点的初始相对位置。 示例: 输入: head = 1->4->3->2->5->2, x = 3 输出: 1->2->2->4->3->5

    这两道算法题的答案解析就在《算法刷题LeetCode中文版.PDF》这份文档中

    image

    资料分享

    领取方式:戳这里即可免费获取,同时还可以“嫖”到一份关于Redis事务源码的详解内容。

    1、算法大厂——字节跳动面试题

    2、2000页互联网Java面试题大全

    3、高阶必备,算法学习

    2、2000页互联网Java面试题大全*

    [外链图片转存中…(img-u32uZHAI-1627634839179)]

    3、高阶必备,算法学习

    展开全文
  • java 分割字符串转换成一个数组

    千次阅读 2022-04-24 09:27:04
    但自己在做测试的时候,分割1两千万以内的字符串,感觉二者时间开销区别不大,甚至 split()花的时间很多时候比StringTokenizer所花的时间还少。但是大于两千万以后,split()方法会执行很长很长时间,甚至上个厕所...
  • JAVA - split: 将字符串分割成数组

    万次阅读 2014-11-24 11:34:11
    利用split把字符串按照指定的分割符进行分割,然后返回...将一个字符串分割为子字符串,然后将结果作为字符串数组返回。 stringObj.split([separator,[limit]])  stringObj 必选项。要被分解的 String 对象或文字,
  • java String中文字符串分割成一定长度的字符串数组/*** 几个字一 变量控制 大于零有意义*/int num = 6;/*** 待操作的字符串*/String str = "一二三四五六七一二三四五六七一二三四五六七一二三四五六七一二三四五...
  • Java程序中的所有字符串字面值都作为此类的实例实现。字符串是常量,它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。因为 String 对象是不可变的,所以可以共享。String 类包括的方法可用于检查序列的...
  • 对于面试大厂的朋友,一些建议 阿里 阿里面试官一般都是P7/P8岗,对标到普通互联网公司相当于就是技术专家那种类型!他们对于没有经验的毕业...高扩展、高可用问题,这些你也应该准备好,10%问基础,像spring原理、Java
  • 经常会遇到要把字符串分割成数组的情况,在Java中只要调用split(",")方法就能把字符串分割成数组,在JS中也很简单同样也是调用split( "," )方法就可以做到。 在php中调用什么方法分割字符串呢?调用explode()方法 ...
  • 三个关键字使用双空格隔开,然后判断一个字符串中是否包含有三个关键字。先搞成数组,然后拼接 String ww="hdsf 配置 省"; String xx="收到了福建省考来对付hdsf,盛开的积分老实交代hdsf,时代峻峰莱克斯顿配置...
  • java字符串拆分 空字符Java String split() method is used to split the string into a string array based on the provided regular expression. Java String split()方法用于根据提供的正则表达式将字符串拆分...
  • 字符串是这个样子的: String result = “内地综艺,剧情,动作,动漫电影,台湾,喜剧,国产,国产动漫,微电影,恐怖,战争,日本,日韩动漫,日韩综艺,欧美,欧美动漫,欧美综艺,泰国,海外,海外动漫,港台动漫,港台综艺,爱情,...
  • 直接上代码: public class Test { /** * 将字符串按照指定长度分割字符串数组 * * @param src * @param length * @return */ public static ...
  • mybatis传入字符串分割成数组并遍历

    千次阅读 2020-06-02 17:56:26
    在我们的业务场景中,前段经常传过来一些用逗号“,”隔开的字符串,我们怎么在mybatis中将字符串分割后再用in查询呢? 废话少说,上代码 <!--查询名字为某某某的用户信息--> <select id="getUser" ...
  • 主要介绍了Java实现数组转字符串及字符串转数的方法,结合实例形式分析了Java字符串及数组相关的分割、遍历、追加等操作技巧,需要的朋友可以参考下
  • 问题描述:String preStr = "a.b.c"; // 这里要把该字符串按小圆点进行分割,成"a","b","c"String[] string = preStr.split(".");...补充知识:Java中不使用split方法实现字符串分割成字符数组核心思想...
  • String类的split方法,字符串分割成数组:...depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogComm
  • 一位小伙伴准备了许久的阿里Java面试,原以为能够顺利拿下offer,但在第三面还是被摁在地上反复摩擦,丧气一段时间后,小伙伴调整了心态重新尝试了一下,最终拿下了offer,今天小编把这位小伙伴遇到的面试题分享出来...
  • 1)字符串拆分成数组,如"ab&&2" 通过”&&“做分隔符,分割得到字符串数组[“ab”,“2”] 2)实现字符串组合, 如[“ab”,“2”]通过”&&" 分隔符,组合成字符串"ab&&2” 注:1.这道题...
  • 重视Java基础,对你项目中涉及的Java基础知识会出对应的代码题,涉及比较多Java基础概念,重视编程基本功。 最后 看完美团、字节、腾讯这三家的面试问题,是不是感觉问的特别多,可能咱们又得开启面试造火箭、工作...
  • java.lang包中有String.split()方法,返回是一个数组。1、“.”和“|”都是转义字符,必须得加"\\";如果用“.”作为分隔的话,必须是如下写法:String.split("\\."),这样才能正确的分隔开,不能用String.split("....
  • java字符串数组转list实体集合

    千次阅读 2021-01-27 09:47:36
    字符串数组转list实体集合 Resolved [com.alibaba.fastjson.JSONException: exepct ‘[’, but string, pos解决方法 首先需要导入json相关包,这里建议导入阿里巴巴的jar包 import com.alibaba.fastjson.JSON; ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,064
精华内容 1,225
关键字:

java字符串分割成数组