精华内容
下载资源
问答
  • java将字符串转为数组的方法是:可以通过split方法实现,该方法可以根据匹配给定的正则表达式来拆分字符串。具体用法:【String[] arr = str.split(",")】,表示用逗号分割字符串,并存入数组中。我们可以通过split...

    java将字符串转为数组的方法是:可以通过split方法实现,该方法可以根据匹配给定的正则表达式来拆分字符串。具体用法:【String[] arr = str.split(",")】,表示用逗号分割字符串,并存入数组中。

    c8846ebcf2bcd67b16fc13ae7f2066ca.png

    我们可以通过split方法实现。

    (推荐教程:java入门程序)

    方法介绍:

    split() 方法可以根据匹配给定的正则表达式来拆分字符串。

    注意: . 、 | 和 * 等转义字符,必须得加 \。多个分隔符,可以用 | 作为连字符。

    语法结构:public String[] split(String regex, int limit)

    (视频教程推荐:java视频教程)

    参数介绍:

    regex -- 正则表达式分隔符。

    limit -- 分割的份数。

    示例:// 字符串转数组 java.lang.String

    String str = "0,1,2,3,4,5";

    String[] arr = str.split(","); // 用,分割

    System.out.println(Arrays.toString(arr)); // [0, 1, 2, 3, 4, 5]

    展开全文
  • java将字符串转为数组的方法是:可以通过split方法实现,该方法可以根据匹配给定的正则表达式来拆分字符串。具体用法:【String[] arr = str.split(",")】,表示用逗号分割字符串,并存入数组中。我们可以通过split...

    java将字符串转为数组的方法是:可以通过split方法实现,该方法可以根据匹配给定的正则表达式来拆分字符串。具体用法:【String[] arr = str.split(",")】,表示用逗号分割字符串,并存入数组中。

    755b8ce4aa1b663b6d0cf19e6230403d.png

    我们可以通过split方法实现。

    方法介绍:

    split() 方法可以根据匹配给定的正则表达式来拆分字符串。

    注意: . 、 | 和 * 等转义字符,必须得加 \\。多个分隔符,可以用 | 作为连字符。

    语法结构:public String[] split(String regex, int limit)

    (视频教程推荐:java视频教程)

    参数介绍:

    regex -- 正则表达式分隔符。

    limit -- 分割的份数。

    示例:// 字符串转数组 java.lang.String

    String str = "0,1,2,3,4,5";

    String[] arr = str.split(","); // 用,分割

    System.out.println(Arrays.toString(arr)); // [0, 1, 2, 3, 4, 5]

    展开全文
  • 介绍通常,我们面临这样一种情况,我们需要将字符串拆分为某些特定字符或子字符串,以从中获取一些有用的信息。例如,我们可能想在国家代码或从CSV文件导入的数据上分割电话号码。在本文中,我们将介绍如何Java中...

    4dac53d73fce79564af9070bb56aff6e.png

    介绍

    通常,我们面临这样一种情况,我们需要将字符串拆分为某些特定字符或子字符串,以从中获取一些有用的信息。

    例如,我们可能想在国家代码或从CSV文件导入的数据上分割电话号码。

    在本文中,我们将介绍如何在Java中拆分String。

    分裂()方法(没有限制)

    此方法采用String正则表达式(regex)格式的一个参数。此方法在给定正则表达式的匹配项附近拆分字符串。

    该方法的语法为:

    String[] split(String regex, int limit)

    regex参数表示的分隔符,即基于什么我们就会将我们的字符串。请记住,此参数不需要太复杂,Java仅提供使用正则表达式的选项。

    例如,让我们看看如何将String拆分为两个单独的名称:

    String myString = "Jane-Doe";
    String[] splitString = myString.split("-");

    我们可以简单地使用字符/子字符串代替实际的正则表达式。当然,在正则表达式中有一些特殊字符需要牢记,并在需要它们的字面值时转义它们。

    字符串拆分后,结果将以字符串数组形式返回。返回数组中的字符串以与原始字符串相同的顺序出现。

    结果打包在String数组中。要检索单独的名称,我们可以访问每个元素:

    System.out.println(splitString[0]);
    System.out.println(splitString[1]);

    结果是:

    Jane
    Doe

    请记住,此方法将在所有出现的定界符上分割字符串。例如,我们可以使用CSV格式的输入:

    String myString = "Jane,21,Employed,Software Engineer";
    String[] splitString = myString.split(",");
    
    for (String s : splitString) {
        System.out.println(s);
    }

    结果是:

    Jane
    21
    Employed
    Software Engineer

    Java split()方法(有限制)

    在此,该方法采用两个参数,一个是前面讨论的参数,regex另一个是一个整数值,表示limit。该limit参数用于确定我们要分割字符串多少次。

    limit参数可以采用三种形式之一,即,它可以是大于,小于或大于零。让我们看一下这些情况分别代表什么:

    • 正数limit-String将最多拆分limit - 1一次。除此之外,字符串的其余部分将按原样作为数组的最后一个元素返回,而不进行拆分。返回数组的长度将始终小于或等于limit
    • 负数limit-String在定界符处将其拆分尽可能多的次数,而忽略特定的负值集。数组中的子字符串包括原始字符串中的尾随空格(如果有)。
    • limit设置为0-时,String将再次拆分尽可能多的次数,并且结果数组的长度没有限制。split()如前所述,其工作原理与调用方法相同,只是将regex作为参数。在这种情况下,不返回尾随空格。

    正极限值

    让我们看一些使用不同限制的示例。首先,一个正值limit

    String myString = "there,,are,more,than,three,commas,,,";
    String [] splitStrings = myString.split(",", 4);
    
    for(String string : splitStrings){
        System.out.println(String.format(" " %s "", string));
    }

    限制为4,String最多将拆分三(limit - 1)次。这给了我们一个包含四个元素(0..3)的数组,最后一个元素是第三次拆分之后的所有内容:

    "there"
    ""
    "are"
    "more,than,three,commas,,,"

    如果我们limit在相同的String上使用负数:

    String myString = "there,,are,more,than,three,commas,,,";
    String [] splitStrings = myString.split(",", -1);
    
    for(String string : splitStrings){
        System.out.println(String.format(" " %s "", string));
    }

    String将被分割为多次地,和后空字符串将被添加到阵列中:

    "there"
    ""
    "are"
    "more"
    "than"
    "three"
    "commas"
    ""
    ""
    ""

    我们没有考虑实际使用的负值,如果使用,则会得到相同的结果-150

    如果将设置limit0,则将再次对String进行尽可能多的拆分,但是结果数组将不包含尾随的空格:

    String myString = "there,,are,more,than,three,commas,,,";
    
    // Equivalent to calling the split() method with only the regex parameter
    String [] splitStrings = myString.split(",", 0);
    
    for(String string : splitStrings){
        System.out.println(String.format(" " %s "", string));
    }

    这将给我们:

    "there"
    ""
    "are"
    "more"
    "than"
    "three"
    "commas"

    特殊字符注意

    如前所述,regexsplit()方法中作为定界符传递的参数是一个正则表达式。如果要使用特殊字符的分隔符,则必须确保对特殊字符进行转义。例如,*字符表示“以下字符的一个或多个实例”。

    正则表达式中有12个这样的字符。它们是:^$.|?*+()[{。你可以看到他们在正则表达式的意思在这里。

    如果要String在这些字符之一处拆分a ,则必须特别注意在方法参数中转义这些字符。我们可以使用此方法的一种方法是使用反斜杠。例如:

    string.split("|");

    string|字符处拆分变量。我们在这里使用两个反斜杠,因为我们需要首先转义反斜杠的Java含义,因此可以将反斜杠应用于|字符。

    取而代之的是,我们可以使用正则表达式字符集。这是指将要转义的特殊字符放在方括号内。这样,特殊字符被视为普通字符。例如,我们可以|这样说:

    string.split("[|]");

    逃脱特殊字符的另一种方法是使用Pattern.quote()

    string.split(Pattern.quote("|"));

    结论

    split()JavaString类的方法是非常有用且经常使用的工具。大多数数据,特别是从读取文件中获得的数据,都需要进行一些预处理,例如拆分字符串,以从中获取有意义的信息。

    在本文中,我们讨论了如何在Java中拆分字符串。

    展开全文
  • 0.前言今天有个需求,把Android中data/data目录下指定(通过读预置的...那么毋庸置疑第一步就是理清如何将一个文件夹内的全部内容一起复制到指定的新的文件夹下。后面这个FileUtils工具类类可以完全满足需求,在此分...

    0.前言

    今天有个需求,把Android中data/data目录下指定(通过读预置的XML文件)的多个应用下的多个目录全部内容通过OTG模式复制到U盘中。

    首先读取XML文件内的某个节点的属性值,这个已经在Java实现——Dom4j读写XML文件中详细介绍过了。

    那么毋庸置疑第一步就是理清如何将一个文件夹内的全部内容一起复制到指定的新的文件夹下。

    后面这个FileUtils工具类类可以完全满足需求,在此分享出来方便大家使用。

    参数为源目录以及目标目录的File对象实例。

    1.  字符串分割

    1.1  使用split

    第一步就是将字符串根据分号切分,这个使用split比较容易,代码分别总结如下。

    String str = "com.tencent.mm/MicroMsg;com.tencent.mm/shared_prefs" ;

    String[] temp = str.split(";");

    System.out.println(Arrays.toString(temp));

    同时,若不止通过分号进行分割,如需要根据逗号和分号一起分割,那么改变split内的参数即可。

    String[] temp = str.split(",|;");

    1.2  使用StringTokenizer

    文档上表示使用StringTokenizer性能会比split更高,这里介绍一下StringTokenizer的用法,也比较简单。

    1.2.1  第一种构造方法

    //构造一个用来解析str的StringTokenizer对象

    //Java默认的分隔符是“空格”“制表符(‘\t’)”“换行符(‘\n’)”“回车符(‘\r’)”

    StringTokenizer(String str)这种构造函数的使用示例如下:

    String s=new String("SEU Calvin is handsome");

    StringTokenizer st=new StringTokenizer(s);

    System.out.println("Token Total:"+st.countTokens());//返回nextToken()被调用的次数

    while ( st.hasMoreElements() ){ //判断是否还有分隔符

    System.out.println(st.nextToken());//nextToken返回分隔后的各个子字符串输出结果为:

    Token Total:4

    SEU

    Calvin

    is

    handsome

    1.2.2  第二种构造方法

    //构造一个用来解析str的StringTokenizer对象

    //并提供一个指定的分隔符

    //同时,指定是否返回分隔符,如果不提供boolean默认为false

    StringTokenizer(String str,String delim,boolean returnDelims)这种构造函数的使用示例如下:

    String s=new String("SEU=Calvin=is=handsome");

    StringTokenizer st=new StringTokenizer(s,"=",true);

    System.out.println("Token Total:"+st.countTokens());

    while ( st.hasMoreElements() ){

    System.out.println(st.nextToken());输出结果为:

    Token Total:7

    SEU

    =

    Calvin

    =

    is

    =

    handsome若第三个参数修改为false,或根本不带第三个参数,因为默认为false,则输出如下:

    Token Total:4

    SEU

    Calvin

    is

    handsome

    2.  文件拷贝工具类

    FileUtils工具类展示如下:

    import java.io.File;

    import java.io.FileFilter;

    import java.io.FileInputStream;

    import java.io.FileNotFoundException;

    import java.io.FileOutputStream;

    import java.io.IOException;

    import java.io.InputStream;

    import java.io.OutputStream;

    import java.util.ArrayList;

    import java.util.List;

    public class FileUtils {

    private static final int DEFAULT_BUFFER_SIZE = 1024 * 4;

    public static void copyDirectory(File srcDir, File destDir) throws IOException {

    copyDirectory(srcDir, destDir, true);

    }

    public static void copyDirectory(File srcDir, File destDir, boolean preserveFileDate) throws IOException {

    copyDirectory(srcDir, destDir, null, preserveFileDate);

    }

    public static void copyDirectory(File srcDir, File destDir, FileFilter filter) throws IOException {

    copyDirectory(srcDir, destDir, filter, true);

    }

    public static void copyDirectory(File srcDir, File destDir, FileFilter filter, boolean preserveFileDate)

    throws IOException {

    if (srcDir == null) {

    throw new NullPointerException("Source must not be null");

    }

    if (destDir == null) {

    throw new NullPointerException("Destination must not be null");

    }

    if (srcDir.exists() == false) {

    throw new FileNotFoundException("Source '" + srcDir + "' does not exist");

    }

    if (srcDir.isDirectory() == false) {

    throw new IOException("Source '" + srcDir + "' exists but is not a directory");

    }

    if (srcDir.getCanonicalPath().equals(destDir.getCanonicalPath())) {

    throw new IOException("Source '" + srcDir + "' and destination '" + destDir + "' are the same");

    }

    // Cater for destination being directory within the source directory

    // (see IO-141)

    List exclusionList = null;

    if (destDir.getCanonicalPath().startsWith(srcDir.getCanonicalPath())) {

    File[] srcFiles = filter == null ? srcDir.listFiles() : srcDir.listFiles(filter);

    if (srcFiles != null && srcFiles.length > 0) {

    exclusionList = new ArrayList(srcFiles.length);

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

    File copiedFile = new File(destDir, srcFiles[i].getName());

    exclusionList.add(copiedFile.getCanonicalPath());

    }

    }

    }

    doCopyDirectory(srcDir, destDir, filter, preserveFileDate, exclusionList);

    }

    private static void doCopyDirectory(File srcDir, File destDir, FileFilter filter, boolean preserveFileDate,

    List exclusionList) throws IOException {

    if (destDir.exists()) {

    if (destDir.isDirectory() == false) {

    throw new IOException("Destination '" + destDir + "' exists but is not a directory");

    }

    } else {

    if (destDir.mkdirs() == false) {

    throw new IOException("Destination '" + destDir + "' directory cannot be created");

    }

    if (preserveFileDate) {

    destDir.setLastModified(srcDir.lastModified());

    }

    }

    if (destDir.canWrite() == false) {

    throw new IOException("Destination '" + destDir + "' cannot be written to");

    }

    // recurse

    File[] files = filter == null ? srcDir.listFiles() : srcDir.listFiles(filter);

    if (files == null) { // null if security restricted

    throw new IOException("Failed to list contents of " + srcDir);

    }

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

    File copiedFile = new File(destDir, files[i].getName());

    if (exclusionList == null || !exclusionList.contains(files[i].getCanonicalPath())) {

    if (files[i].isDirectory()) {

    doCopyDirectory(files[i], copiedFile, filter, preserveFileDate, exclusionList);

    } else {

    doCopyFile(files[i], copiedFile, preserveFileDate);

    }

    }

    }

    }

    private static void doCopyFile(File srcFile, File destFile, boolean preserveFileDate) throws IOException {

    if (destFile.exists() && destFile.isDirectory()) {

    throw new IOException("Destination '" + destFile + "' exists but is a directory");

    }

    FileInputStream input = new FileInputStream(srcFile);

    try {

    FileOutputStream output = new FileOutputStream(destFile);

    try {

    copy(input, output);

    } finally {

    try {

    output.close();

    } catch (IOException ioe) {

    // do nothing

    }

    }

    } finally {

    try {

    input.close();

    } catch (IOException ioe) {

    // do nothing

    }

    }

    if (srcFile.length() != destFile.length()) {

    throw new IOException("Failed to copy full contents from '" + srcFile + "' to '" + destFile + "'");

    }

    if (preserveFileDate) {

    destFile.setLastModified(srcFile.lastModified());

    }

    }

    // 测试出要复制的文件数量

    public static int copy(InputStream input, OutputStream output) throws IOException {

    long count = copyLarge(input, output);

    if (count > Integer.MAX_VALUE) {

    return -1;

    }

    return (int) count;

    }

    // 复制大文件

    public static long copyLarge(InputStream input, OutputStream output) throws IOException {

    byte[] buffer = new byte[DEFAULT_BUFFER_SIZE];

    long count = 0;

    int n = 0;

    while (-1 != (n = input.read(buffer))) {

    output.write(buffer, 0, n);

    count += n;

    }

    return count;

    }

    }

    d69db9598c6e91ec3390f94bc62a1efb.png

    展开全文
  • 这意味着第一个字符串将包含之前的字符'-',第二个字符串将包含之后的字符'-'。我还想检查字符串是否包含'-'在其中。如果没有,我抛出异常。我怎样才能做到这一点?二、详解只需使用适当的方法即可:String#split...
  • 我有一个字符串"004-034556" ,我想分成两个字符串: string1="004"; string2="034556"; 这意味着第一个字符串将包含'-'之前的字符,第二个字符串将
  • 字符串,“004-034556” ,分成两个: ``` ...这意味着第一个字符串将包含“-”之前的字符,第二个字符串将包含“-”之后的字符。 我还要检查字符串中是否有“-”。 如果不是,出现异常。怎么做?
  • java如何利用split实现分割字符串发布时间:2020-11-10 16:53:38来源:亿速云阅读:75作者:Leah这期内容当中小编会给大家带来有关java如何利用split实现分割字符串,文章内容丰富且以专业的角度为大家分析和叙述...
  • java如何将字符数组转换成字符串,以逗号分割 方法1: 需要引入Apache Commons组件中的个commons-lang.jar包 String str1=StringUtils.join(ary, ","); 方法2: 格式化 String str2 = String.format("%s,%s,%...
  • 0. 前言 今天有个需求,把Android中data/data目录下指定(通过读预置的XML文件)的...那么毋庸置疑第一步就是理清如何将一个文件夹内的全部内容一起复制到指定的新的文件夹下。后面这个FileUtils工具类类可以完全满...
  • 现在,我们看到如何使用该split()方法分割字符串。包括定界符作为参数。String[]strSplit=str.split(",");结果添加到数组中并显示。以下是一个示例。示例publicclassDemo{publicstaticvoidmain(String[]args){...
  • String类的split()方法接受一个定界符(以字符串的形式),基于该定界符将当前String分成较小的字符串,并...用空格分隔字符串作为分隔符要将字符串拆分为以白色节奏作为分隔符的字符串数组-读取源字符串。通过传递“...
  • Java 分割字符串

    2020-03-24 17:26:45
    我们可以使用split(string)方法通过指定的分隔符将字符串分割为数组。 完整代码 public class JavaStringSplitEmp { public static void main(String args[]){ String str = "www-baidu-com"; ...
  • 展开全部方法1:需要引入Apache Commons组件中的个commons-lang.jar包String str1=StringUtils.join(ary, ",");...扩展资料:反之,字符串转化为字符串数e69da5e6ba9062616964757a686964616f313333663...
  • 将字符串数组中的字符串拼接成一个字符串,中间以“,”分割; example: String[] str={"John","lily,","lily","lucy"}; String objectStr=""; for(int i=0;i<str.length;i++){ if(i!=str.length-1){ ...
  • java字符串分割问题。

    2015-06-05 02:09:54
    大家请看下 ...这是我用程序从网上截取的部分内容,现在需要他们分割Vessel后面的数据保留,前面的舍弃,然后分别装进数组内,但是问题出现了,我从网页上获取的内容是用一个table填进去的,那如何分割呢?
  • I.java 字符串分割成字符数组String str="1,2,3,4,5";String s[]=str.split(",");II 如何将字串 String 转换成整数 int A. 有两个方法: 1). int i = Integer.parseInt([String]); 或 i = Integer.parseInt([String...
  • String类的split()方法接受一个定界符(以字符串的形式),基于该定界符当前String分成较小的字符串,并所得的字符串作为数组返回。如果String不包含指定的分隔符,则此方法返回仅包含当前字符串的数组。例如,...
  • 我已经文件读入String。 该文件包含各种名称,每行一个名称。... // fileString is the string representation of the file但是我没有得到所需的结果,并且在分割字符串后获得的数组长度为1.这意味着"...
  • 我是android开发的菜鸟,我正尝试通过多个换行符将字符串拆分多次。我要拆分的字符串是从数据库查询中提取的,其结构如下:public String getCoin() {// TODO Auto-generated method stubString[] columns = new ...
  • java 分割字符串

    2009-06-03 15:59:14
    String str = "java123456789mojpjava12345mojp"; java开头 以mojp结束的字符串进行提取出来 我要的是个数组 内容: 123456789 12345 如何 进行提取 ,正则表达式 如何写?
  • 我用来分割任意数量的空格的字符串的代码是String out="SELECT * ...我希望“out”字符串中的空格包含到array []对象中,同时使用空格分割.我想要的输出是:array[]={"SELECT","[WHITE SPACE]","*","[WHITE SPACE...
  • 小编典典一种方法是其解析为日期对象,然后重新格式化:try {DateFormat f = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss a");Date d = f.parse("8/29/2011 11:16:12 AM");DateFormat date = new SimpleDateFormat...
  • JAVA将字符串拆分并翻转如何做题目解析代码 题目 编写一个程序,将下面的一段文本中的各个单词的字母顺序翻转,“To be or not to be.",将变成"oT eb ro ton ot eb."。 解析 这题的核心是对java字符串的理解,...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 153
精华内容 61
关键字:

java如何将字符串分割

java 订阅