精华内容
下载资源
问答
  • 先看下面的方法,事先预测一下,经过split方法,按逗号进行分割为数组之后,生成的数组的长度是多少,目测很多人都觉得是8,但是结果却出乎意料。是5而不是8. private static void testSplit() { String ss = ",aa,...

    先看下面的方法,事先预测一下,经过split方法,按逗号进行分割为数组之后,生成的数组的长度是多少,目测很多人都觉得是8,但是结果却出乎意料。是5而不是8.

    private static void testSplit() {

    String ss = ",aa,bb,cc,dd,,,";

    String[] array = ss.split(",");

    System.out.println(array.length);//结果是5,而不是预想中的8

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

    System.out.println(array[i]);

    }

    }

    然后就是正儿八经的运行结果图:

    341fc854efb89987637f784032af40a7.png

    可以看到,结果真的是5而不是我们猜的8,这是为什么呢?

    原因解析:

    点进去看源码,debug一下,如下图:

    3e69e370ca320a8228d92b53c0cff9ec.png

    可以看到,刚刚开始的时候,确实是有0-7,8个分割出来的东西存在,有三个是空字符串,""。不是null。不用担心空指针异常。

    然后 看到下面的继续走,if语句,就看到,他把这个list从尾部开始判断,如果这个list的后面的字符串的长度是0,那么这个resultSize就 减减,然后一直while循环,

    直到不符合条件,那么list的下标是5、6、7的值就被抛弃了,然后新生的结果字符串数组,的大小就变成加工过后的长度,那么就变成了长度 5的数组。

    list.subList(0, resultSize).toArray(result)

    就是这句话啦。

    他只是处理后面尾部的空字符串,不处理中间的空字符串和 开头的空字符串。

    知道这个原理之后,那么这个 问题以后怎么变,你都了然于胸啦。

    下面是又更新的

    现在要求字符串

    "aa12sas32sasa223sas12as12wqe"//去掉数字,然后弄成数组

    "aa,,sas,,sasa,,,,sasas,,,"//去掉逗号,不管几个逗号,都去掉

    "aa sas sa sa sas as "//去掉空格,也不管几个,

    把他们给分解成数组,同时刨除掉不用的多余信息。

    具体实现代码如下:

    private static void testSplitPlus() {

    String ss = "aa12sas32sasa223sas12as12wqe";

    String[] array = ss.split("[d]+");

    System.out.println(Arrays.toString(array));

    ss = "aa,,sas,,sasa,,,,sasas,,,";

    array = ss.split("[,]+");

    System.out.println(Arrays.toString(array));

    ss = "aa sas sa sa sas as ";

    array = ss.split("[s]+");

    System.out.println(Arrays.toString(array));

    }

    下面再看看这个split的源码。

    public String[] split(String regex) {

    return split(regex, 0);

    }

    不知道你看到没,那个regex,不就是正则表达式的意思嘛?

    那就明白了,这个方法是支持正则表达式操作的。那上面的代码就好解释啦。

    第一个[d]+这个解释就是是转义符,d表示数字,括起来后面的加号表示一个或者多个,那么就可以解释运行结果啦。

    第二个[,]解释类似,就是逗号出现一次或多次,

    第三个,s,就是匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ fnrtv]。

    然后下面,看运行结果。

    7d7417e7eabbadf970ebc88057ec9dd6.png

    这就是我们要的结果啦。

    展开全文
  • Java 程序中的所有字符串字面值都作为此类的实例实现。字符串是常量,它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。因为 String 对象是不可变的,所以可以共享。String 类包括的方法可用于检查序列的...

    String 类:

    String 类代表字符串。Java 程序中的所有字符串字面值都作为此类的实例实现。字符串是常量,它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。因为 String 对象是不可变的,所以

    可以共享。

    String 类包括的方法可用于检查序列的单个字符、比较字符串、搜索字符串、提取子字符串、创建字符串副本并将所有字符全部转换为大写或小写。Java 语言提供对字符串串联符号("+")以及将其他

    对象转换为字符串的特殊支持。字符串串联是通过 StringBuilder(或 StringBuffer)类及其 append 方法实现的。字符串转换是通过 toString 方法实现的,该方法由 Object 类定义,并可被 Java

    中的所有类继承。

    String 类的split方法可以根据给定正则表达式的匹配拆分字符串,故而可以把字符串分离成单个字符的形式。

    StringTokenizer 类:

    string tokenizer 类允许应用程序将字符串分解为标记。tokenization 方法比 StreamTokenizer 类所使用的方法更简单。StringTokenizer 方法不区分标识符、数和带引号的字符串,它们也不识别并

    跳过注释。可以在创建时指定,也可以根据每个标记来指定分隔符(分隔标记的字符)集。

    StringTokenizer 的实例有两种行为方式,这取决于它在创建时使用的 returnDelims 标志的值是 true 还是 false:

    如果标志为 false,则分隔符字符用来分隔标记。标记是连续字符(不是分隔符)的最大序列。

    如果标志为 true,则认为那些分隔符字符本身即为标记。因此标记要么是一个分隔符字符,要么是那些连续字符(不是分隔符)的最大序列。

    StringTokenizer 对象在内部维护字符串中要被标记的当前位置。某些操作将此当前位置移至已处理的字符后。通过截取字符串的一个子串来返回标记,该字符串用于创建 StringTokenizer 对象。

    //如何把一段逗号分割的字符串转换成一个数组

    package com.test.string;//构建自己的包

    import java.util.StringTokenizer;//导入StringTokenizer 类,后面要用到此类来创建对象和此类的方法。

    public class StrToArray{

    public static void main(String[] args) {

    String str="a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z";

    String[] strArray=null;

    System.out.println("调用convertStrToArray结果:");

    strArray = convertStrToArray(str);

    printArray(strArray);

    System.out.println("调用convertStrToArray2结果:");

    strArray = convertStrToArray2(str);

    printArray(strArray);

    }

    //使用String的split 方法

    public static String[] convertStrToArray(String str){

    String[] strArray = null;

    strArray = str.split(","); //拆分字符为"," ,然后把结果交给数组strArray

    return strArray;

    }

    //使用StringTokenizer实现

    //api说明:StringTokenizer 是出于兼容性的原因而被保留的遗留类

    //(虽然在新代码中并不鼓励使用它)。建议所有寻求此功能的人使用

    //String 的 split 方法或 java.util.regex 包

    public static String[] convertStrToArray2(String str){

    StringTokenizer st = new StringTokenizer(str,",");//把","作为分割标志,然后把分割好的字符赋予StringTokenizer对象。

    String[] strArray = new String[st.countTokens()];//通过StringTokenizer 类的countTokens方法计算在生成异常之前可以调用此 tokenizer 的 nextToken 方法的次数。

    int i=0;

    while(st.hasMoreTokens()){//看看此 tokenizer 的字符串中是否还有更多的可用标记。

    strArray[i++] = st.nextToken();//返回此 string tokenizer 的下一个标记。

    }

    return strArray;

    }

    //输出数组

    public static void printArray(String[] array){

    for(int i=0;i

    System.out.print(array[i]);

    if(i==array.length-1){

    System.out.print("\n");

    }else{

    System.out.print(",");

    }

    }

    }

    }

    此类的用的虽然不是很多,方法简单已掌握,但还是有必要去了解。

    展开全文
  • java怎么把字符串转换成字符数组1、将字符串变成数组方法:java.lang包中有String.split()方法,java中通常用split()分割字符串,返回的是一个数组。特殊转义字符,必须加"\\"(“.”和“|”都是转义字符)在Java语言...

    f35ca7f0740dc6c9c41ca68ee32c526b.png

    java怎么把字符串转换成字符数组

    1、将字符串变成数组方法:

    java.lang包中有String.split()方法,java中通常用split()分割字符串,返回的是一个数组。

    特殊转义字符,必须加"\\"(“.”和“|”都是转义字符)

    在Java语言编程时,使用“口令字段“jPasswordField组件时,如果要获得密码值,就需要使用该组件的getPassword()方法,jPasswordField的getPassword()方法返回一个char类型的数组,我们经常需要将这个数组转换为String类型,以便进行诸如口令匹配或口令赋值等操作。这时,就需要将char类型的数组进行转换。当然也经常会遇到将String类型转换为char数组的情况。

    2、使用String.toCharArray()方法将字符串转为字符数组public class Test {

    /**

    * @param args

    */

    public static void main(String[] args) {

    // TODO Auto-generated method stub

    Scanner input = new Scanner(System.in);

    String str = input.next();

    char ss[] = str.toCharArray(); //利用toCharArray方法转换

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

    System.out.println(ss[i]);

    }

    }

    }

    php中文网,大量的免费Java入门教程,欢迎在线学习!

    展开全文
  • 1、字符串变成byte类型数组的转换如下 String a="田江南 你好"; byte[] by = null; by = a.getBytes("utf-8"); 这个时候byte类型的数组by是这样的 2、如何[B@490eb6ae 也就是字节数组变成字符串呢? ...

    问题描述

    1、字符串变成byte类型数组的转换如下

    	String a="田江南 你好";
    	byte[] by = null;
    		by = a.getBytes("utf-8");

    这个时候byte类型的数组by是这样的


    2、如何把[B@490eb6ae 也就是字节数组变成字符串呢?

    不是by.toString();而是String s=new String(by); by就是byte[] by类型的数组


    应用场景

    流的输入输出

    展开全文
  • 四、输入一个字符串字符串是字母和数字的组合,编程实现输出一个新的字符串,要求字母在前面,数字在后面,顺序不变,例如:2s7ess83a 变成sessa2783 五、一个字符串,获取最长的一个单词,如有多个相同...
  • 数组变成字符串代码如下:使用StringUtils中的join函数。org.apache.commons.lang.StringUtils;示例:StringUtils.join(null)=nullStringUtils.join([])=""StringUtils.join([null])=""StringUtils.join(["a","b",...
  • 展开全部将数组变成字符e69da5e6ba903231313335323631343130323136353331333365643662代码如下:使用StringUtils中的join函数。org.apache.commons.lang.StringUtils;示例:StringUtils.join(null) = ...
  • 就是“123456”这样的一个字付串变成一个数组String[] s = new String[]{"1","2","3","4","5"}; 或者我循环打印出来的结果12345用result+"," 1,2,3,4,5, 存到一个String[] s数组里面 求demo啊,求大神指点一下要...
  • Java将字节数组转换成字符串

    千次阅读 2016-10-27 10:12:56
    项目要求通过TCP传过来的原始报文做保存,所以要先字节数组转换成16进制的字符串保存下来。字符串保存时必须做相应处理。比如第二个字节转成十进制是1 第二个字节转成十进制是2 第三个字节转成十进制是13 如果不...
  • 定义一个方法,把数组[1,2,3]按照指定格式拼接成一个字符串,格式参照如下:[world#world#world] 分析: 1.首先准备一个int[]数组,内容是:1,2,3 2.定义一个方法,用来将数组变成字符串 三要素 返回值类型:String ...
  • 首先比较简单的情况就是一串字符反着输出,不用考虑其他,这种比较简单:1、把字符串变成数组,然后倒序输出:public void StringRevers(String str) {// 将字符串str转化成字符数组char[] arr = str.toCharArray();...
  • JAVA、FLASH中一般通讯数组是UTF-8格式的字节数组,直接拿到VC++中当字符串显示会显示烫烫烫烫烫或者其它的乱码,这就是数组不是以0结尾导致的,所以我们在用之前这个数组最后一位变成0就行了。下面是多字符集中...
  • java密钥字符串byte[]传递问题

    千次阅读 2013-09-21 22:50:16
    系统功能中有一个要求将密钥编写进二维码中,但是查阅资料可以知道二维码说白了就是一个能够存储字符串的一个特殊图形,因此要将密钥变成字符串,密钥是byte[]类型,字符串java中是String,这就需要byte数组转换...
  • 1、字符串与字符数组的转换字符串可以使用toCharArray()方法变成一个字符数组,也可以使用String类的构造方法一个字符数组变成一个字符串。public class StringAPIDemo01{public static void main(String[] args){...
  • public class List1 { public static void main(String[] args) { String s = "abc nnn ooo/xzsxc bs"; System.out.println("原字符串:"+ s + "\n"); //s字符串变成ss数组,然后根据空格截取字符串 String[...
  • 1. 题目描述 利用字符重复出现的次数,编写一个方法,实现基本的字符串压缩功能。...(1)可以直接把字符串转换为字符数组,然后统计相同字符的个数,最后拼接起来,返回。 (2)… 3. 代码实现 (1)
  • 字符串之间的操作

    2010-11-06 09:09:37
    闲来无事,偶尔看到一个Java面试题,就动手做了一下。 题目:有两个字符串,找出他们不相同...有一些人看到这样的字符串,可能就先想到把字符串变成数组,因为他们都以逗号分割的。如果把他们都变成数组的话,有没...
  • 数组

    2021-01-25 02:09:40
    –toString(数组)–把数组里的数据变成字符串展示 –sort(数组)–把数组里的数据排序 –copyOf(m,n)–m是原数组的名称,n是新数组的长度 –3,测试 package cn.tedu.arrays; import java.util.Arrays; //测试 数组工具...
  • )toLowerCase()把字符串中的文本变成小写toUpperCase() 把字符串中的文本变成大写B.28 submit对象它是form对象的一个属性,窗体中的一个提交按钮()。属性name 对象的名字(NAME=特性)value VALUE=特性方法click模拟...
  • 把数组{1,2,3}按照指定个格式拼接成一个字符串。格式参照如下:[word1#word2#word3] ...2.定义一个方法,用来将数组变成字符串 三要素 返回值类型:String 方法名称:fromArrayToString 参数列表:int[] 3.格式2.[word1#
  • 题目描述:输入一个正整数数组把数组里所有数字拼接起来排成一个数,打印能拼接出的所有...注意整数的拼接变成字符串可以加"";方法2:采用比较数组字符串大小的方法。两个数字m和n能拼接成数字mn和数...
  • 先说一下我的思路:比如现在有字符串:”12212321“1,先在每个字符间隔的地方放一个“#”,这样做的目的是为了不用对字符串进行奇偶的分类讨论,这个字符串变成“#1#2#2#1#2#3#2#1#”;2,“#1#2#2#1#2#3#2#1#”...
  • 这样的确可以生成一个字符串,但是在可逆的加密算法中,你通过这种方式字节数组变成字符串之后,再想得到加密字节数组原文恐怕就没那么容易了,将直接导致无法解密. byte[] c = x.getBytes(); 事实证明
  • join() :用于把数组中的所有元素放入一个字符串。语法:arrayObject.join(separator)示例:结果:注意使用该函数分割后变成字符串
  • 字符串拼接的几种方式

    千次阅读 2014-05-07 21:59:22
    工作中经常要把数组拼接成字符串 如数组【a, b, c】变成 字符串“a, b, c” 那么可以采用下面几种方式:     For 定义起始标志代码   String[] array = { "1254", "2571", "3389", "6543" }; ...
  • Arrays类的常用方法1,void sort(array) //排序2,boolean equals(array1,array2) //判相等3.String toString(array)//变成字符串4、void fill(array,val) 把数组array所有元素都赋值为val。5、int binarySearch...
  • 暴力解 全排列,然后组成,最后输出最小的数。类似于字符串的全排列,那个题就是排列过程分为第一个和后面的,可以通过...如果用java语言可以写比较器来比较(注意比较器只能用来比较集合,所以要int数组变成Integ
  • * 1、这个题很简单,直接前 n 个字符拿出来变成数组,然后一个个拼接到后面即可 * 2、因为是使用到Java,需要反复的操作字符串,并且没有线程安全的问题,所以我们首选 StringBuilder * * 其它: * 1、其中...
  • Java-IO流之字符

    2018-11-03 22:37:08
    一.字符流出现的原因 ...编码: 就是把字符串转换成字节数组(把看得懂的变成看不懂的: String – byte[]) 把一个字符串转换成一个字节数组 public byte[] getBytes();使用平台的默认字符集将此 String编码为...
  • Java----字符

    2019-05-08 17:12:01
    编码表 什么是编码表 由于计算机只能识别二进制数据,为了方便应用计算机,让它可以识别各个国家... 即将字符串变成字节数组(String→byte[]), 代表方法为str.getBytes(charsetName); 解码: 看不懂...

空空如也

空空如也

1 2 3 4 5 6
收藏数 110
精华内容 44
关键字:

java把字符串变成数组

java 订阅