Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将CharArray中的某个字符后添加八个字符到字符串中_Java_Android_Arrays_String_Char - Fatal编程技术网

Java 将CharArray中的某个字符后添加八个字符到字符串中

Java 将CharArray中的某个字符后添加八个字符到字符串中,java,android,arrays,string,char,Java,Android,Arrays,String,Char,我有这个字符串: }1311202013112020607169018}1611202016112020}1411202014112020626948615}1511202015112020}1811202018112020 为了帮助您理解,我将按如下方式拆分: }13112020 13112020607169018 }16112020 16112020 }14112020 14112020626948615 }15112020 15112020 }18112020 181120207834

我有这个字符串:

}1311202013112020607169018}1611202016112020}1411202014112020626948615}1511202015112020}1811202018112020
为了帮助您理解,我将按如下方式拆分:

}13112020 13112020607169018 }16112020 16112020 }14112020 14112020626948615 }15112020 15112020 
}18112020 181120207834
我想做的是在表示日期的“}”字符后面加上前八个字符(数字)。其他我根本不需要的数字

我用for循环尝试了很多不同的方法,这是最后一段代码

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

     if(Char[i] == '}') {

          newString = newString + Char[i + 6];

     } 
}
还有,如果有人能告诉我如何创建(如果可能的话)x个新字符串,每个字符串都是不同的名称,只包含其中一个日期


谢谢大家!

我们可以在此处尝试使用正则表达式字符串拆分:

String input=“}1311202013112020607169018}16112020161112020}1411202014112020626948615}15112020151112020}1811202018112020”;

String[]parts=input.split((?我们可以在此处尝试使用正则表达式字符串拆分:

String input=“}1311202013112020607169018}16112020161112020}1411202014112020626948615}15112020151112020}1811202018112020”;

String[]parts=input.split((?您可以利用正则表达式来查找与您的模式匹配的所有子字符串。在本例中,正则表达式是
“\}[0-9]{8}”
(您在右大括号后说6个字符,但示例显示8)

在Java中,您可以使用
Pattern
Matcher
编译此正则表达式并查找所有匹配的子字符串:

import java.util.regex.Pattern;
导入java.util.regex.Matcher;
字符串str=“}13112020131112020607169018}16112020161112020}1411202014112020626948615}15112020151112020}1811202018112020”;
Pattern=Pattern.compile(“\\}[0-9]{8}”);//必须使用双转义大括号
Matcher-Matcher=pattern.Matcher(str);
//我们使用StringBuilder连接结果
StringBuilder结果=新建StringBuilder();
while(matcher.find()){
append(matcher.group());
}
System.out.println(result.toString());

您可以利用正则表达式来查找与您的模式匹配的所有子字符串。在本例中,正则表达式将是
“\}[0-9]{8}”
(您在右括号后面说6个字符,但您的示例显示8个字符)

在Java中,您可以使用
Pattern
Matcher
编译此正则表达式并查找所有匹配的子字符串:

import java.util.regex.Pattern;
导入java.util.regex.Matcher;
字符串str=“}13112020131112020607169018}16112020161112020}1411202014112020626948615}15112020151112020}1811202018112020”;
Pattern=Pattern.compile(“\\}[0-9]{8}”);//必须使用双转义大括号
Matcher-Matcher=pattern.Matcher(str);
//我们使用StringBuilder连接结果
StringBuilder结果=新建StringBuilder();
while(matcher.find()){
append(matcher.group());
}
System.out.println(result.toString());

据我所知,你需要这样的东西

}13112020}16112020}14112020}15112020}18112020
static List<String> getDates(String str){
      String[] arr = str.split("}");
      ArrayList<String> out = new ArrayList<>();
      for (int i = 0;i < arr.length;i++){
            arr[i] = arr[i].trim(); //remove any spaces
            if (arr[i].length() == 0) continue;
            out.add(arr[i].subString(0 , Math.min(arr[i].length() , 6)); //to prevent any OutOfBounds Errors
            
      }
      return out;
}
静态列表getDates(字符串str){
字符串[]arr=str.split(“}”);
ArrayList out=新的ArrayList();
对于(int i=0;i
据我所知,你需要这样的东西

}13112020}16112020}14112020}15112020}18112020
static List<String> getDates(String str){
      String[] arr = str.split("}");
      ArrayList<String> out = new ArrayList<>();
      for (int i = 0;i < arr.length;i++){
            arr[i] = arr[i].trim(); //remove any spaces
            if (arr[i].length() == 0) continue;
            out.add(arr[i].subString(0 , Math.min(arr[i].length() , 6)); //to prevent any OutOfBounds Errors
            
      }
      return out;
}
静态列表getDates(字符串str){
字符串[]arr=str.split(“}”);
ArrayList out=新的ArrayList();
对于(int i=0;i
一个简单的方法:

String text = new String(Char);
List<String> lists = new ArrayList<String>();
String[] split = text.split("}");

for(String first: split) {
    lists.add(first.substring(0,5));
}
String text=新字符串(Char);
List lists=新建ArrayList();
String[]split=text.split(“}”);
for(字符串优先:拆分){
添加(第一个子字符串(0,5));
}
一个简单的方法:

String text = new String(Char);
List<String> lists = new ArrayList<String>();
String[] split = text.split("}");

for(String first: split) {
    lists.add(first.substring(0,5));
}
String text=新字符串(Char);
List lists=新建ArrayList();
String[]split=text.split(“}”);
for(字符串优先:拆分){
添加(第一个子字符串(0,5));
}

是的,我不知道我在哪里看到了六个字符,我现在编辑了,谢谢。也谢谢你所有的答案,但这很好,没有任何错误。是的,我不知道我在哪里看到了六个字符,我现在编辑了。也谢谢你所有的答案,但这很好,没有任何错误。
static List<String> getDates(String str){
      String[] arr = str.split("}");
      ArrayList<String> out = new ArrayList<>();
      for (int i = 0;i < arr.length;i++){
            arr[i] = arr[i].trim(); //remove any spaces
            if (arr[i].length() == 0) continue;
            out.add(arr[i].subString(0 , Math.min(arr[i].length() , 6)); //to prevent any OutOfBounds Errors
            
      }
      return out;
}
String text = new String(Char);
List<String> lists = new ArrayList<String>();
String[] split = text.split("}");

for(String first: split) {
    lists.add(first.substring(0,5));
}