我有一个字符串,需要将其拆分并存储在ArrayList中,如下所示;所有这些都使用Java7。
下面是我程序的输入;
String inputStr = "ABC:DONE:07JAN90:1234:00001111:U:1234567:9632587:4561230:EC:IN:4815263:3621547:0314783)";
我试图在这里实现的是一个ArrayList,如下所示,在它分组后。
"List" : [
{
1234567,
4815263
},
{
9632587,
3621547
},
{
4561230,
0314783
}
]
我写了一个示例代码,但似乎没有将元素B分组到列表中。我们如何将这两个元素分组到列表中。
示例代码:
String splitStringNeeded = "ABC:DONE:07JAN90:1352:00009279:U:1234567:9632587:4561230:EC:GB:4815263:3621547:0314783)";
String[] vElements = splitStringNeeded.split(":");
String[] grpV = Arrays.copyOfRange(vElements, 6,10 );
String[] grpT = Arrays.copyOfRange(vElements, 12, vElements.length);
List<String> groupedV = Arrays.asList(grpV);
List<String> groupedT = Arrays.asList(grpT);
for(String splitV : groupedV){
for(String splitT : groupedT){
System.out.println(splitV);
System.out.println(splitT);
break;
}
}
我得到下面的输出,其中elementB没有改变,而是重复自身。有人能给我指路吗
"List" : [
{
1234567,
4815263
},
{
9632587,
4815263
},
{
4561230,
4815263
}
]
我们甚至可以考虑以下输入:
ABC:DONE:07JAN90:1352:00009279:U:1234567:9632587:0:EC:GB:4815263:3621547
ABC:DONE:07JAN90:1352:00009279:U:1234567:0:0:EC:GB:4815263
我刚刚将示例代码中的嵌套for循环修改为单个for循环
当然,没有什么未知的,例如
源字符串是否始终遵循与所显示的相同的模式
列表的长度groupedV和groupedT是否始终具有相同的长度等,这是不考虑的
String splitStringNeeded = "ABC:DONE:07JAN90:1352:00009279:U:1234567:9632587:4561230:EC:GB:4815263:3621547:0314783";
/* Additional code for dynamic allocation of indexes
int indexU = splitStringNeeded.indexOf("U:");
int indexOfGb = splitStringNeeded.indexOf("EC:GB:");
System.out.println("Index of U "+indexU);
System.out.println("Index of GB "+indexOfGb);
String sub1 = splitStringNeeded.substring(indexU+2, indexOfGb-1);
System.out.println("Substring 1 = "+sub1);
String sub2 = splitStringNeeded.substring(indexOfGb+6, splitStringNeeded.length());
System.out.println("Substring 2 = "+sub2);
//Additional code for dynamic allocation of indexes
*/
String[] vElements = splitStringNeeded.split(":");
String[] grpV = Arrays.copyOfRange(vElements, 6, 9);
String[] grpT = Arrays.copyOfRange(vElements, 11, vElements.length);
List<String> groupedV = Arrays.asList(grpV);
List<String> groupedT = Arrays.asList(grpT);
if(groupedV.size() == groupedT.size()) {
for(int i=0; i<groupedV.size(); i++){
System.out.println(groupedV.get(i));
System.out.println(groupedT.get(i));
}
}
/*for (String splitV : groupedV) {
for (String splitT : groupedT) {
if (!splitV.equals("0")) {
System.out.println(splitV);
System.out.println(splitT);
break;
}
}
}*/
我添加了注释代码来动态选择索引值,而不是像6,10,12这样的硬编码
如果取消注释第一个注释块,输出如下所示
Index of U 31
Index of GB 57
Substring 1 = 1234567:9632587:4561230
Substring 2 = 4815263:3621547:0314783
1234567
4815263
9632587
3621547
4561230
0314783
我有一个字符串,其中我需要拆分它并存储在ArrayList中,如下所示;所有这些都使用Java7。 下面是我的程序的输入; 我在这里试图实现的是一个数组列表,如下所示。 我编写了一个示例代码,但似乎没有将elementB分组到列表中。我们如何将这两个元素组合成一个列表。 示例代码: 我得到下面的输出,其中elementB没有改变,而是重复自身。有人能给我指路吗
我想执行将单个字符串转换为矩阵或表格形式的拆分逻辑。我有下面的弦结构。 每次钉钉结构都是一样的,但产品应该是可变的(意味着产品可以增加或减少) 我期待的输出如下 这意味着我需要将数据存储在单独的ArrayList中,如: Sr.ArrayList包含1和2,Particulars ArrayList包含Knife和Pirates Cap等等。 我尝试了几种方法但都没有成功 首先我想我必须使用这个链
因为我需要以下O/P > 列表项 String val1=开始//完成//First//com//上传Dummy123//First//下载 String val2=First 输出=First//com//上传Dummy123//First//下载 列表项 字符串val1=开始//完成//首先//com//上载dummy123//首先//下载 字符串val2=完成 输出=完成//首先//com/
问题内容: 我正在Java中的一个需要嵌套字符串的项目中工作。 对于纯文本形式的输入字符串,如下所示: 这是“字符串”,这是“ \嵌套”字符串 结果必须为以下内容: 请注意 ,我希望保留序列。 我有以下方法: 而且我需要根据给定的规则从给定的参数中创建一个字符串数组,而不使用 Java Collection Framework 或其派生类。 我不确定如何解决这个问题。 可以做一个正则表达式来解决这
问题内容: 我有以下字符串(Java 1.5): 我需要一个数组: 用Java最方便的方法是什么? 问题答案: 这将为您提供所需的数组,只有第一项为空。和: 这将使数组没有空的第一项。 此处的关键是零宽度正向超前(非捕获构造)(请参阅regex pattern docs)。 表示“或者;或:” 是字边界的-在那里是为了不将第一个视为定界符(因为它是序列的开头)
问题 你想拆分一个字符串。 解决方案 使用 JavaScript 字符串的 split() 方法: "foo bar baz".split " " # => [ 'foo', 'bar', 'baz' ] 讨论 String 的这个 split() 方法是标准的 JavaScript 方法。可以用来基于任何分隔符——包括正则表达式来拆分字符串。这个方法还可以接受第二个参数,用于指定返回的子字符串数