怎么截取java的字符串,JavaScript substring() 方法,substring这么使用(详细介绍)

简介: 怎么截取java的字符串,JavaScript substring() 方法,substring这么使用(详细介绍)

JavaScript substring() 方法


定义和用法


substring() 方法用于提取字符串中介于两个指定下标之间的字符。


语法

stringObject.substring(start,stop)


参数 描述

start 必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。

stop

可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1。


如果省略该参数,那么返回的子串会一直到字符串的结尾。


返回值

一个新的字符串,该字符串值包含 stringObject 的一个子字符串,其内容是从 start 处到 stop-1 处的所有字符,其长度为 stop 减 start。


说明


substring() 方法返回的子串包括 start 处的字符,但不包括 stop 处的字符。


如果参数 start 与 stop 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。如果 start 比 stop 大,那么该方法在提取子串之前会先交换这两个参数。


提示和注释

重要事项:与 slice() 和 substr() 方法不同的是,substring() 不接受负的参数。


例子 1

在本例中,我们将使用 substring() 从字符串中提取一些字符:

<script type="text/javascript">
var str="Hello world!"
document.write(str.substring(3))
</script>
lo world!

例子 2

在本例中,我们将使用 substring() 从字符串中提取一些字符:

<script type="text/javascript">
var str="Hello world!"
document.write(str.substring(3,7))
</script>
lo w

substring()的作用就是截取父字符串的某一部分


public String substring(int beginIndex, int endIndex)


第一个参数int为开始的索引,对应String数字中的开始位置,


第二个参数是截止的索引位置,对应String中的结束位置


1、取得的字符串长度为:endIndex - beginIndex;


2、从beginIndex开始取,到endIndex结束,从0开始数,其中不包括endIndex位置的字符


代码示例如下:

package com.example;
public class MyClass {
    public static void main(String[] args){
        String test = "Hello World !";
        String subTest1 = test.substring(0,3);
        System.out.println("subTest:" + subTest1);
        String subTest2 = test.substring(0,test.length());
        System.out.println("subTest:" + subTest2);
    }
}


运行结果如下:

subTest:Hel
subTest:Hello World !


注意:


1)、substring(a,b)中的参数a其值可以从索引值0开始,

当a等于0时,则表示其从字符串的第一个字符开始算起,
   也就是其子字符串是包含第一个字符的,当然,你也可以从后续的其他字符开始;


2)、substring(a,b)中的参数b,其值最大可以为 父字符串的长度,

但并不包含索引值为b的那个字符。
public static void main(String[] args) {
        // 写一下截取   以路径为例   拿到4ecd16f4-e444-4b9d-b845-c97780294d75.tmp 最后这个
        String path = "E:\\360浏览器\\360se6\\User Data\\4ecd16f4-e444-4b9d-b845-c97780294d75.tmp";
        // substring(param1, param2)是截取字符串   param1-开始的位置 param2-结束的位置 
        // path.lastIndexOf("\\")  开始位置: 路径文件最后一个  “\\”    为开始位置
       // path.lastIndexOf("\\")+1  开始位置: 路径文件最后一个  “\\” +1  再像后移动一个字符创的位置  为开始位置
        String fileName = path.substring(path.lastIndexOf("\\") + 1, path.length());// 从\\处开始截取 一直到字符串末尾
        // fileName 就截取出来
        System.out.println(fileName);
        String str = "今天是个好日子";// 我要把日子取出来 
        System.out.println(str.substring(5,7));// substring param1-开始的位置 param2-结束的位置 
        // 这是比较简单的 
        System.out.println(str.length());
        System.out.println(str.indexOf("今"));
        System.out.println(str.indexOf("天"));
        System.out.println(str.indexOf("是"));
        System.out.println(str.indexOf("个"));
        System.out.println(str.indexOf("好"));// 此处开始 一直到最后
        System.out.println(str.indexOf("日"));
        System.out.println(str.indexOf("子"));
    }
}


运行结果:

4ecd16f4-e444-4b9d-b845-c97780294d75.tmp
日子
7
0
1
2
3
4
5
6
相关文章
|
2月前
|
消息中间件 Java Kafka
在Java中实现分布式事务的常用框架和方法
总之,选择合适的分布式事务框架和方法需要综合考虑业务需求、性能、复杂度等因素。不同的框架和方法都有其特点和适用场景,需要根据具体情况进行评估和选择。同时,随着技术的不断发展,分布式事务的解决方案也在不断更新和完善,以更好地满足业务的需求。你还可以进一步深入研究和了解这些框架和方法,以便在实际应用中更好地实现分布式事务管理。
|
2月前
|
安全 Java 开发者
Java中WAIT和NOTIFY方法必须在同步块中调用的原因
在Java多线程编程中,`wait()`和`notify()`方法是实现线程间协作的关键。这两个方法必须在同步块或同步方法中调用,这一要求背后有着深刻的原因。本文将深入探讨为什么`wait()`和`notify()`方法必须在同步块中调用,以及这一机制如何确保线程安全和避免死锁。
46 4
|
2月前
|
Java
深入探讨Java中的中断机制:INTERRUPTED和ISINTERRUPTED方法详解
在Java多线程编程中,中断机制是协调线程行为的重要手段。了解和正确使用中断机制对于编写高效、可靠的并发程序至关重要。本文将深入探讨Java中的`Thread.interrupted()`和`Thread.isInterrupted()`方法的区别及其应用场景。
52 4
|
2月前
|
Java 数据处理 数据安全/隐私保护
Java处理数据接口方法
Java处理数据接口方法
27 1
|
8天前
|
Java
Java—多线程实现生产消费者
本文介绍了多线程实现生产消费者模式的三个版本。Version1包含四个类:`Producer`(生产者)、`Consumer`(消费者)、`Resource`(公共资源)和`TestMain`(测试类)。通过`synchronized`和`wait/notify`机制控制线程同步,但存在多个生产者或消费者时可能出现多次生产和消费的问题。 Version2将`if`改为`while`,解决了多次生产和消费的问题,但仍可能因`notify()`随机唤醒线程而导致死锁。因此,引入了`notifyAll()`来唤醒所有等待线程,但这会带来性能问题。
Java—多线程实现生产消费者
|
10天前
|
安全 Java Kotlin
Java多线程——synchronized、volatile 保障可见性
Java多线程中,`synchronized` 和 `volatile` 关键字用于保障可见性。`synchronized` 保证原子性、可见性和有序性,通过锁机制确保线程安全;`volatile` 仅保证可见性和有序性,不保证原子性。代码示例展示了如何使用 `synchronized` 和 `volatile` 解决主线程无法感知子线程修改共享变量的问题。总结:`volatile` 确保不同线程对共享变量操作的可见性,使一个线程修改后,其他线程能立即看到最新值。
|
10天前
|
消息中间件 缓存 安全
Java多线程是什么
Java多线程简介:本文介绍了Java中常见的线程池类型,包括`newCachedThreadPool`(适用于短期异步任务)、`newFixedThreadPool`(适用于固定数量的长期任务)、`newScheduledThreadPool`(支持定时和周期性任务)以及`newSingleThreadExecutor`(保证任务顺序执行)。同时,文章还讲解了Java中的锁机制,如`synchronized`关键字、CAS操作及其实现方式,并详细描述了可重入锁`ReentrantLock`和读写锁`ReadWriteLock`的工作原理与应用场景。
|
11天前
|
安全 Java 编译器
深入理解Java中synchronized三种使用方式:助您写出线程安全的代码
`synchronized` 是 Java 中的关键字,用于实现线程同步,确保多个线程互斥访问共享资源。它通过内置的监视器锁机制,防止多个线程同时执行被 `synchronized` 修饰的方法或代码块。`synchronized` 可以修饰非静态方法、静态方法和代码块,分别锁定实例对象、类对象或指定的对象。其底层原理基于 JVM 的指令和对象的监视器,JDK 1.6 后引入了偏向锁、轻量级锁等优化措施,提高了性能。
33 3
|
11天前
|
存储 安全 Java
Java多线程编程秘籍:各种方案一网打尽,不要错过!
Java 中实现多线程的方式主要有四种:继承 Thread 类、实现 Runnable 接口、实现 Callable 接口和使用线程池。每种方式各有优缺点,适用于不同的场景。继承 Thread 类最简单,实现 Runnable 接口更灵活,Callable 接口支持返回结果,线程池则便于管理和复用线程。实际应用中可根据需求选择合适的方式。此外,还介绍了多线程相关的常见面试问题及答案,涵盖线程概念、线程安全、线程池等知识点。
92 2