java - Java字符串索引让我感到困惑
问题描述
所以我需要从我的数据库中收集数据,这是我国家的假期日期,数据是这样的
Example 1 : THU 21 May Ascension Day of Jesus Christ *ICDX GOLD open for
Example 2 : MON-THU 28-31 Dec Substitute for Commemoration of Idul Fitri Festival
所以我需要从日期、日期和假期名称中获取数据,为了从示例 1 中获取数据,我正在使用这样的代码
public static void main(String[] args) {
String ex1 = "THU 21 May Ascension Day of Jesus Christ *ICDX GOLD open for";
String ex2 = "MON-THU 28-31 Dec Substitute for Commemoration of Idul Fitri Festival ";
String[] trim1 = ex1.trim().split("\\s+"); //to split by space
String[] trim2 = ex1.trim().split(" "); //to split by 3 space so i got the data from multiple space as delimiter
System.out.println("DAY " +trim1[0]);//display day
System.out.println("DATE " +trim1[1] +trim1[2]+"2020");//display date
System.out.println("HOLIDAY NAME " +trim2[3]);//dispay holiday name
}
输出是这样的
DAY MON
DATE 21May2020
HOLIDAY NAME Ascension Day of Jesus Christ
就像我需要的一样,但是当谈到示例 2 时,我不能使用相同的代码,因为空间不同,如何使用示例 1 和 2 使用相同的代码获取我需要的数据。
我是java新手,所以如果我的问题看起来很愚蠢,我很抱歉,我希望你能帮助我。谢谢
解决方案
.split("\\s+")
将在任何空间分割,包括多个空间。例如。它将拆分为 1 个或更多空间。
这意味着您可以拆分任意数量的空间(您想要的)。但是,这也会拆分您的文本评论。您可以使用 .split(regex, n) 限制生成的数组的长度(拆分的次数),这将导致最多 n-1 大小的数组。有关更多详细信息,请参阅此
至于拆分您的两个文字评论,我看不到这样做的方法。
Substitute for Commemoration of Idul Fitri Festival ";
无法分辨第一个文本注释和第二个文本注释是什么。
对我来说,您从数据库中收到这样的信息似乎很奇怪,我建议您看看是否有其他选项可以这样做。几乎可以肯定有一种方法可以获得单独的字段。
如果能够更改数据库中的所有信息,您可以添加单引号 (') 或其他一些分隔符,然后您就可以将两段文本分开。
推荐阅读
- .htaccess - 使用单页应用程序重定向到 .htaccess 上的 https
- excel - 有没有办法将 COUNTIF 和 FILTER 结合起来?
- android - 访问活动中回收站视图的视图
- sql - MS Access:限制 DateDiff() 查询结果的最佳方法?
- react-native - 有条件的 NavigationContainer ,认证后不会触发 onReady
- c++ - 如何在不手动输入的情况下计算总数?
- asp.net-core - 在 VS2019 中切换构建配置会导致配置被覆盖
- react-jsonschema-forms - 如何在 react-json-schema-form 中反转依赖项
- scala - 通过比较字符串列表和映射来过滤元素
- asp.net-core - 如何在 finbuckle 多租户配置中更改授权类型