首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

按符号拆分字符串,并将符号放入变量中。Java

按符号拆分字符串,并将符号放入变量中的任务可以通过Java的字符串操作和数组操作实现。

首先,我们可以使用Java中的split()方法将字符串按照特定的符号拆分为多个子字符串。该方法返回一个字符串数组,每个元素都是按照指定符号拆分后的子字符串。

示例代码如下:

代码语言:txt
复制
String str = "a,b,c,d";
String[] parts = str.split(",");

// parts数组中存储了拆分后的子字符串
for (String part : parts) {
    System.out.println(part);
}

在上面的示例中,我们使用逗号作为分隔符将字符串"a,b,c,d"拆分为4个子字符串。每个子字符串都被存储在parts数组中,并通过循环遍历打印出来。

接下来,我们可以将拆分出的符号存储在变量中。由于符号只会拆分为字符串数组的元素之间,我们可以使用字符串数组的长度来计算符号的个数,并将符号存储在一个新的字符串数组中。

示例代码如下:

代码语言:txt
复制
String str = "a,b,c,d";
String[] parts = str.split(",");

String[] symbols = new String[parts.length - 1];
for (int i = 0; i < parts.length - 1; i++) {
    symbols[i] = ",";
}

// symbols数组中存储了拆分出的符号
for (String symbol : symbols) {
    System.out.println(symbol);
}

在上面的示例中,我们首先创建一个长度为parts数组长度减1的字符串数组symbols。然后,我们使用一个循环将逗号存储到symbols数组中。最后,通过循环遍历symbols数组打印出拆分出的符号。

总结: 按符号拆分字符串,并将符号放入变量中,可以使用Java的split()方法将字符串拆分为多个子字符串,并使用字符串数组来存储拆分出的符号。需要注意的是,字符串数组的长度应该比子字符串数组长度小1,以便正确存储拆分出的符号。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

利用栈实现中缀表达式计算

就需要从数栈pop出两个数,在从符号pop出一个符号,并进行运算,将得到的结果放入数栈,在将当前符号放入符号栈 3.2.2 如果当前的符号的优先级大于栈顶符号。...第二次扫描时,发现是符号,并且当前符号栈为空,所以直接放入符号栈 第三次扫描时,发现是数字,将其放入数栈 第四次扫描时,发现是符号(*),并且当前符号的优先级是大于符号栈,栈顶符号的优先级的。...(*),将它们进行运算得到结果12,并将结果放入数栈,同时将当前符号(- )放入符号 第七次扫描,发现是数字,直接将其放入数栈 此时已经遍历完毕,接下来要将数栈和符号的元素分别弹出进行运算...第一次弹出 12和2和-运算得到结果为10,并将放入数栈 此时,在弹出数栈和符号的元素 10和3和+,得到运算结果为13,将其放入数栈 此时数栈只有一个元素即表达式运算的结果...3.我们需要定义一个变量字符串,用于拼接拼接多为数 ...

53910
  • 2020,也该知道Java字符串池和intern()了

    第一种方式创建的字符串,会将"abc"这个字面量放到了常量池中,然后str1和str2都指向常量池中的"abc",所以两个变量地址相同;第二种方式创建的字符串,是先在常量池中放入"xyz",然后通过构造函数将常量池中的..."xyz"拷贝一份到堆中生成新的String,和常量池中的"xyx"就没有了关系,所以两个变量指向的是堆两个不同的变量,所以两个变量地址不同。...第一部分:str1在常量池创建了abc,并将引用放入字符串池,str2拷贝常量池中的abc并在堆创建新字符串。intern()从字符串池中获取的是常量池中str1的abc引用。...从上面的代码也得出结论:intern()可以将堆创建的且字符串池没有等值引用的字符串引用放入字符串池。 同时,这也能说明String为什么不可变这个问题。...在常量池创建了"string"并将其引用放入字符串池,str1调用intern()返回的是常量池中的引用,而str1指向的是堆的引用,所以输出为false。

    21430

    从String的intern()到常量池

    "xyz"拷贝一份到堆中生成新的String,和常量池中的"xyx"就没有了关系,所以两个变量指向的是堆两个不同的变量,所以两个变量地址不同。...常量池 常量池是存放字面量、符号引用或直接引用的地方。而常量池又分为class常量池和运行时常量池。 class常量池 class常量池是存放编译期类的字面量和符号引用。...第一部分:str1在常量池创建了abc,并将引用放入字符串池,str2拷贝常量池中的abc并在堆创建新字符串。intern()从字符串池中获取的是常量池中str1的abc引用。...从上面的代码也得出结论:intern()可以将堆创建的且字符串池没有等值引用的字符串引用放入字符串池。 同时,这也能说明String为什么不可变这个问题。...在常量池创建了"string"并将其引用放入字符串池,str1调用intern()返回的是常量池中的引用,而str1指向的是堆的引用,所以输出为false。

    27720

    字符串类的设计与实现_C语言字符串编程题

    Java 字符串常用操作(String类) 字符串查找 String提供了两种查找字符串的方法,即indexOf与lastIndexOf方法。...字典顺序比较两个字符串 compareTo()方法为字典顺序比较两个字符串,该比较基于字符串各个字符的Unicode值,字典顺序将此String对象表示的字符序列与参数字符串所表示的字符序列进行比较...str.toLowerCase(); str.toUpperCase(); 字符串分割 使用split()方法可以使字符串指定的分隔字符或字符串对内容进行分割,并将分割后的结果存放在字符数组。...str.split(String sign); sign为分割字符串的分割符,也可以使用正则表达式。 没有统一的对字符串进行分割的符号,如果想定义多个分割符,可使用符号“|”。...str.split(String sign, in limit); 该方法可根据给定的分割符对字符串进行拆分,并限定拆分的次数。

    56730

    《数据结构与算法之美》- 栈

    你还可能知道的栈 提到“栈”,做Java的同学还会想起Java内存模型的“栈”,与之紧密关联的还有一个名词——堆,但是这里,此栈非彼栈。...其中所指的“堆”笔者在后面专门讲述,而所指的“栈”就是现在讲的虚拟机栈,或者说是虚拟机栈中局部变量部分。...,也可能是指向一个对象的句柄或其他与此对象相关的位置)和returnAddress类型(指向了一条字节码指令的地址) 说人话就是,Java内存结构的一部分,线程私有,用来存储指定的数据类型数据。...当所有字符串匹配完成,并且栈最后是空栈,说明字符串可以正确匹配。 栈在浏览器前进后退的应用 在浏览器,我们可以通过前进后退回到自己想要的网页。...当需要前进的时候,从前进栈取出栈顶元素,并将该元素放入后退栈; 当需要后退的时候,从后退栈取出栈顶元素,并将该元素放入前进栈

    63920

    不止面试—jvm类加载面试题详解

    加载 加载主要做三件事: 找到类文件(通过类的全限定名来获取定义此类的二进制字节流) 放入方法区(将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构) 开个入口(生成一个代表此类的java.lang.Class...校验 顾名思义,检查Class文件的字节流包含的信息是否符合当前虚拟机的要求。 准备 这一步中将为静态变量和静态常量分配内存,并赋值。 需要注意的是,静态变量只会给默认值。...该字符串包含了足够的信息,比如类的信息,方法名,方法参数等,以供实际使用时可以找到相应的位置。 这个字符串就被称为符号引用。...类初始化的条件 Java虚拟机规范严格规定了有且只有五种情况必须对类进行初始化: 使用new字节码指令创建类的实例,或者使用getstatic、putstatic读取或设置一个静态字段的值(放入常量池中的常量除外...当所有的父类加载器都没有加载的时候,再由当前的类加载器加载,并将放入它自己的缓存,以便下次有加载请求的时候直接返回。 为啥要搞这么复杂?自己处理不好吗? 双亲委派的优点如下: 避免重复加载。

    68210

    深入理解 Lua 虚拟机

    头部字段: 嵌套的函数原型: 注 1:二进制 chunk 字符串分为三种情况: ①NULL 字符串用 0x00 表示; ② 长度小于等于 253(0xFD)的字符串,先用 1 个 byte 存储字符串长度...编码模式分为 4 类:iABC(39)、iABx(3)、iAsBx(4)、iAx(1) 4 种模式,只有 iAsBx 下的 sBx 操作数会被解释成有符号整数,其他情况下操作数均被解释为无符号整数。...在 lua ,数值型、字符串型等局部变量赋初始值 (数字和字符串会放到常量表): 公式:R(A) := Kst(Bx) Bx A:4 LOADKX Ax:585028 EXTRAARG LOADK...B C A MOD iABC 0x10 OpArgK OpArgK 目标寄存器 idx B:0x001 C:0x100 A:4 MOD 对两个寄存器或常量值(索引由 B 和 C 指定)进行求摸运算,并将结果放入另一个寄存器...B C A POW iABC 0x11 OpArgK OpArgK 目标寄存器 idx B:0x001 C:0x100 A:4 POW 对两个寄存器或常量值(索引由 B 和 C 指定)进行求幂运算,并将结果放入另一个寄存器

    4.5K63

    Java入门(4)-- 字符串

    4.1 String类 在Java语言中将字符串作为对象来处理,可以通过java.lang包的String类来创建字符串对象。...4.1.1 声明字符串 语法: String str 注:声明字符串变量必须经过初始化才能使用,否则编译器会报出“变量未被初始化错误”。...4.4.8 字符串分割 使用split()方法可以使字符串指定的分割符或字符串对内容进行分割,并将分割后的结果存放在字符串数组。...1)split(String sign):根据给定的分隔符对字符串进行拆分 2)Split(String sign, int limit):根据给定的分隔符对字符串进行拆分,并限定拆分此时 sign:...为分割字符串的分割符,也可以使用正则表达式 limit:限制的分割次数 注:没有统一的对字符进行分割的符号,如果想定义多个分割符,可以使用符号“|”。

    80320

    Java的赋值运算符(一)

    以下是基本赋值运算符的示例:int a = 10; // 定义一个整型变量a,并将其值赋为10String s = "Hello"; // 定义一个字符串变量s,并将其值赋为"Hello"double...d = 3.14; // 定义一个双精度浮点型变量d,并将其值赋为3.14在这些示例,我们使用基本赋值运算符将值赋给变量a、s和d。...我们使用算术赋值运算符对变量a进行加、减、乘、除和取模运算,并将结果赋给变量a。...Java提供了六种位运算赋值运算符,包括位与赋值运算符(&=)、位或赋值运算符(|=)、位异或赋值运算符(^=)、左移赋值运算符(>=)和无符号右移赋值运算符(>>>=...我们使用位运算赋值运算符对变量a进行位与、位或、位异或、左移、右移和无符号右移运算,并将结果赋给变量a。

    47520

    第46节:Java当中的常量池

    标题图 Java当中的常量池 在Java虚拟机jvm,内存分布为:虚拟机堆,程序计数器,本地方法栈,虚拟机栈,方法区。...常量池是以表的形式存在(表是用来存储字符串值的,不存储符号引用),实际可以分两种,一种为静态常量池,另一种为运行时常量池,共有11常量表,常量池的每一个常量都代表一张表。...静态常量池就是class文件的常量池有字符串字面量,类信息,方法的信息等,占用了class文件较大部分的空间,在常量池中主要存放的是字面量和符号引用量。...运行时常量池是java虚拟机在完成类加载后的操作,将class文件的常量池加载到内存,并保证在方法区,我们口中的常量池是在方法区运行的常量池,运行时常量池具有动态性,在运行期间也能产生新的常量放入池中...常量不一定要在编译期间产生,也可以在运行期间产生新的产量放入到池中。 如下解析: Java虚拟机jvm在执行某个类的时候,要经过类从加载到内存,到卸载为止。

    83450

    Java当中的常量池

    Java当中的常量池 在Java虚拟机jvm,内存分布为:虚拟机堆,程序计数器,本地方法栈,虚拟机栈,方法区。...常量池是以表的形式存在(表是用来存储字符串值的,不存储符号引用),实际可以分两种,一种为静态常量池,另一种为运行时常量池,共有11常量表,常量池的每一个常量都代表一张表。...静态常量池就是class文件的常量池有字符串字面量,类信息,方法的信息等,占用了class文件较大部分的空间,在常量池中主要存放的是字面量和符号引用量。...运行时常量池是java虚拟机在完成类加载后的操作,将class文件的常量池加载到内存,并保证在方法区,我们口中的常量池是在方法区运行的常量池,运行时常量池具有动态性,在运行期间也能产生新的常量放入池中...常量不一定要在编译期间产生,也可以在运行期间产生新的产量放入到池中。 如下解析: Java虚拟机jvm在执行某个类的时候,要经过类从加载到内存,到卸载为止。

    34610

    JVM学习第三天(JVM的执行子系统)之开篇Class类文件结构

    Java虚拟机不和包括Java在内的任何语言绑定,它只与“Class文件”这种特定的二进制文件格式所关联,Class文件包含了Java虚拟机指令集和符号表以及若干其他辅助信息。...无符号数属于基本的数据类型,以u1、u2、u4、u8来分别代表1个字节、2个字节、4个字节和8个字节的无符号数,无符号数可以用来描述数字、索引引用、数量值或者按照UTF-8编码构成字符串值。...与Java语言习惯不一样的是,这个容量计数是从1而不是0开始的     常量池中主要存放两大类常量:字面量(Literal)和符号引用(Symbolic References)。     ...字面量比较接近于Java语言层面的常量概念,如文本字符串、声明为final的常量值等。     ...    描述接口或者类声明的变量

    37010

    终于搞懂了Java8的内存结构,再也不纠结方法区和常量池了!

    ,方法区也会报OOM),并且将原来放在方法区的字符串常量池和静态变量都转移到了Java,方法区与其他区域不同的地方在于,方法区在编译期间和类加载完成后的内容有少许不同,不过总的来说分为这两部分: 类元信息...类变量变量是用static修饰符修饰,定义在方法外的变量,随着java进程产生和销毁 在java8之前把静态变量存放于方法区,在java8时存放在堆 成员变量 成员变量是定义在类,但是没有static...修饰符修饰的变量,随着类的实例产生和销毁,是类实例的一部分 由于是实例的一部分,在类初始化的时候,从运行时常量池取出直接引用或者值,与初始化的对象一起放入 局部变量 局部变量是定义在类的方法变量...在所在方法被调用时放入虚拟机栈的栈帧,方法执行结束后从虚拟机栈中弹出,所以存放在虚拟机栈 由final修饰的常量存放在哪里?...类常量池与运行时常量池都存储在方法区,而字符串常量池在jdk7时就已经从方法区迁移到了java

    1.6K12

    终于搞懂了Java8的内存结构,再也不纠结方法区和常量池了!

    ,方法区也会报OOM),并且将原来放在方法区的字符串常量池和静态变量都转移到了Java,方法区与其他区域不同的地方在于,方法区在编译期间和类加载完成后的内容有少许不同,不过总的来说分为这两部分: 类元信息...类变量变量是用static修饰符修饰,定义在方法外的变量,随着java进程产生和销毁 在java8之前把静态变量存放于方法区,在java8时存放在堆 成员变量 成员变量是定义在类,但是没有static...修饰符修饰的变量,随着类的实例产生和销毁,是类实例的一部分 由于是实例的一部分,在类初始化的时候,从运行时常量池取出直接引用或者值,与初始化的对象一起放入 局部变量 局部变量是定义在类的方法变量...在所在方法被调用时放入虚拟机栈的栈帧,方法执行结束后从虚拟机栈中弹出,所以存放在虚拟机栈 由final修饰的常量存放在哪里?...类常量池与运行时常量池都存储在方法区,而字符串常量池在jdk7时就已经从方法区迁移到了java

    7.5K53

    JVM-内存结构篇笔记

    由于Java虚拟机栈线程隔离,而一个方法的局部变量存放于栈帧,所以线程安全,如果是共享变量(静态变量),那么线程不安全 图片图片图片 局部变量表 存放编译器可知的各种JVM基本数类型、对象引用和returnAddress...,当该类被加载,它的常量池信息就会背放入运行是常量池,并把里面的符号变为真实地址。...,比如String::inter :tada:String::inter() 图片 StringTable 图片 使用变量相加,由于是变量,所以不会在编译期间优化 特性 常量池中的字符串仅是符号,第一次使用到时才变为对象...利用串池机制,避免重复创建字符串对象 字符串变量拼接的原理是StringBuilder(1.8).append 字符串常量拼接的原理是编译器优化 可以使用intern方法,主动将串池中还没有的字符串对象放入串池...1.8 将这个字符串对象尝试放入串池,如果有则不会放入,如果没有则会放入串池,并返回图片 >true > >true !

    1.1K412

    php字符串基本操作

    );//输出8,返回整数型 $str1='你好'; echo str_word_count($str1);//无法查询中文,返回0 字符串拆分与组合 拆分explode,组合implode explode...根据字符串位置可以拆分为一个数组 implode可以添加符号进行数组元素组合 /*字符串拆分与组合  *拆分explode(分解符,字符串),  *组合implode(分解符,字符串)  *explode...根据字符串位置可以拆分为一个数组  *implode可以添加符号进行组合  */ $string1='A_B_c_d_e_f_g'; $string2='这个 是  照 一定 的 空格 进 行 拆分 ...的 字符'; $a=explode('_',$string1);//拆分string1,传值给变量a print_r($a);//打印数组a echo ""; $b=explode(' ',$string2...);//拆分string2,传值给变量b print_r($b);//打印数组b //implode(组合符号,数组名),组合数组的元素 echo implode('-',$a); echo "

    1.2K10

    Java常量池(静态常量池与运行时常量池)

    final修饰的变量有三种:静态变量、实例变量和局部变量,分别表示三种类型的常量。 Java的常量池,实际上分为两种形态:静态常量池和运行时常量池。...常量池(constant_pool)指的是在编译期被确定,并被保存在已编译的.class文件的一些数据。它包括了关于类、方法、接口等的常量,也包括字符串常量和符号引用。...常量池主要用于存放两大类常量:字面量(Literal)和符号引用量(SymbolicReferences),字面量相当于Java语言层面常量的概念,如文本字符串,声明为final的常量值等,符号引用则属于编译原理方面的概念...类索引、父类索引和接口索引都顺序排列在访问标志之后。 接下来就是@字段表@了,此处字段表存的就是前文说的类成员变量或实例成员变量,但不包括方法内部声明的变量。...运行时常量池相对于CLass文件常量池的另外一个重要特征是具备动态性,Java语言并不要求常量一定只有编译期才能产生,也就是并非预置入CLass文件中常量池的内容才能进入方法区运行时常量池,运行期间也可能将新的常量放入池中

    2.4K21
    领券