精华内容
下载资源
问答
  • 参考链接: 修剪Java的字符串(删除前导和尾随空格) 字符串操作截取后面的字符串 We have to represent every bit of data in numerical values to be processed and analyzed by machine learning ...

    参考链接: 修剪Java中的字符串(删除前导和尾随空格)

    字符串操作截取后面的字符串

     

      

       

        

         We have to represent every bit of data in numerical values to be processed and analyzed by machine learning and deep learning models. However, strings do not usually come in a nice and clean format and require preprocessing to convert to numerical values. Pandas offers many versatile functions to modify and process string data efficiently.

          我们必须以数值表示数据的每一位,以便通过机器学习和深度学习模型进行处理和分析。 但是,字符串通常不会采用简洁的格式,需要进行预处理才能转换为数值。 熊猫提供了许多通用功能,可以有效地修改和处理字符串数据。  

         In this post, we will discover how Pandas can manipulate strings. I grouped string functions and methods under 5 categories:

          在本文中,我们将发现Pandas如何操纵字符串。 我将字符串函数和方法分为5类:  

         Splitting 分裂 Stripping 剥离 Replacing 更换 Filtering 筛选 Combining 结合 

         Let’s first create a sample dataframe to work on for examples.

          让我们首先创建一个示例数据框以进行示例。  

         import numpy as npimport pandas as pdsample = {'col_a':['Houston,TX', 'Dallas,TX', 'Chicago,IL', 'Phoenix,AZ',      'San Diego,CA'],'col_b':['$64K-$72K', '$62K-$70K', '$69K-$76K', '$62K-$72K', '$71K-$78K' ],'col_c':['A','B','A','a','c'],'col_d':['  1x', ' 1y', '2x  ', '1x', '1y  ']}df_sample = pd.DataFrame(sample)df_sample

         

          

           

            

             

              

             

            

           

          

         

          1.分裂 (1. Splitting) 

         Sometimes strings carry more than one piece of information and we may need to use them separately. For instance, “col_a” contains both city and state. The split function of pandas is a highly flexible function to split strings.

          有时字符串包含不止一条信息,我们可能需要单独使用它们。 例如,“ col_a”包含城市和州。 pandas的split函数是用于拆分字符串的高度灵活的函数。  

         df_sample['col_a'].str.split(',')0      [Houston, TX] 1       [Dallas, TX] 2      [Chicago, IL] 3      [Phoenix, AZ] 4    [San Diego, CA] Name: col_a, dtype: object

         Now each element is converted to a list based on the character used for splitting. We can easily export individual elements from those lists. Let’s create a “state” column.

          现在,每个元素都会根据用于拆分的字符转换为列表。 我们可以轻松地从这些列表中导出单个元素。 让我们创建一个“状态”列。  

         df_sample['state'] = df_sample['col_a'].str.split(',').str[1]df_sample

         

          

           

            

             

              

             

            

           

          

         

         Warning: Subscript ([1]) must be applied with str keyword. Otherwise, we will get the list in the specified row.

          警告 :下标([1])必须与str关键字一起应用。 否则,我们将在指定的行中获取列表。  

         df_sample['col_a'].str.split(',')[1]['Dallas', 'TX']

         The splitting can be done on any character or letter.

          可以对任何字符或字母进行拆分。  

         The split function returns a dataframe if expand parameter is set as True.

          如果将expand参数设置为True,则split函数将返回一个数据帧。  

         df_sample['col_a'].str.split('a', expand=True)

         

          

           

            

             

              

             

            

           

          

         

          拆分vs rsplit (split vs rsplit) 

         By default, splitting is done from the left. To do splitting on the right, use rsplit.

          默认情况下,拆分是从左侧开始的。 要在右侧进行拆分,请使用rsplit 。  

         Consider the series below:

          考虑以下系列:  

         

          

           

            

             

              

             

            

           

          

         

         Let’s apply split function and limit the number of splits with n parameter:

          让我们应用split函数并使用n参数限制拆分次数:  

         categories.str.split('-', expand=True, n=2)

         

          

           

            

             

              

             

            

           

          

         

         Only 2 splits on the left are performed. If we do the same operation with rsplit:

          左侧仅执行2个拆分。 如果我们对rsplit执行相同的操作:  

         categories.str.rsplit('-', expand=True, n=2)

         

          

           

            

             

              

             

            

           

          

         

         Same operation is done but on the right.

          完成相同的操作,但在右侧。  

        

       

      

      

       

        

          2.剥离 (2. Stripping) 

         Stripping is like trimming tree branches. We can remove spaces or any other characters at the beginning or end of a string.

          剥离就像修剪树枝。 我们可以删除字符串开头或结尾的空格或任何其他字符。  

         For instance, the strings in “col_b” has $ character at the beginning which can be removed with lstrip:

          例如,“ col_b”中的字符串开头有$字符,可以使用lstrip将其删除:  

         df_sample['col_b'].str.lstrip('$')0    64K-$72K 1    62K-$70K 2    69K-$76K 3    62K-$72K 4    71K-$78K Name: col_b, dtype: object

         Similary, rstrip is used to trim off characters from the end.

          类似地, rstrip用于从末尾修剪字符。  

         Strings may have spaces at the beginning or end. Consider “col_d” in our dataframe.

          字符串的开头或结尾可以有空格。 考虑一下我们数据框中的“ col_d”。  

         

          

           

            

             

              

             

            

           

          

         

         Those leading and trailing spaces can be removed with strip:

          那些前导和尾随空格可以用strip除去:  

         df_sample['col_d'] = df_sample['col_d'].str.strip()

         

          

           

            

             

              

             

            

           

          

         

        

       

      

      

       

        

          3.更换 (3. Replacing) 

         Pandas replace function is used to replace values in rows or columns. Similarly, replace as a string operation is used to replace characters in a string.

          熊猫替换功能用于替换行或列中的值。 同样,替换为字符串操作用于替换字符串中的字符。  

         Let’s replace “x” letters in “col_d” with “z”.

          让我们用“ z”替换“ col_d”中的“ x”个字母。  

         df_sample['col_d'] = df_sample['col_d'].str.replace('x', 'z')

         

          

           

            

             

              

             

            

           

          

         

        

       

      

      

       

        

          4.筛选 (4. Filtering) 

         We can filter strings based on the first and last characters. The functions to use are startswith() and endswith().

          我们可以根据第一个和最后一个字符来过滤字符串。 要使用的函数是startswith()和endswith() 。  

         Here is our original dataframe:

          这是我们的原始数据框:  

         

          

           

            

             

              

             

            

           

          

         

         Here is a filtered version that only includes rows in which “col_a” ends with the letter “x”.

          这是一个过滤的版本,仅包含“ col_a”以字母“ x”结尾的行。  

         df_sample[df_sample['col_a'].str.endswith('X')]

         

          

           

            

             

              

             

            

           

          

         

         Or, rows in which “col_b” starts with “$6”:

          或者,其中“ col_b”以“ $ 6”开头的行:  

         df_sample[df_sample['col_b'].str.startswith('$6')]

         

          

           

            

             

              

             

            

           

          

         

         We can also filter strings by extracting certain characters. For instace, we can get the first 2 character of strings in a column or series by str[:2].

          我们还可以通过提取某些字符来过滤字符串。 对于instace,我们可以通过str [:2]获得列或系列中字符串的前2个字符。  

         “col_b” represents a value range but numerical values are hidden in a string. Let’s extract them with string subscripts:

          “ col_b”表示值范围,但数值隐藏在字符串中。 让我们用字符串下标提取它们:  

         lower  = df_sample['col_b'].str[1:3]

         

          

           

            

             

              

             

            

           

          

         

         upper  = df_sample['col_b'].str[-3:-1]

         

          

           

            

             

              

             

            

           

          

         

        

       

      

      

       

        

          5.结合 (5. Combining) 

         Cat function can be used to concatenate strings.

          Cat函数可用于连接字符串。  

         We need pass an argument to put between concatenated strings using sep parameter. By default, cat ignores missing values but we can also specify how to handle them using na_rep parameter.

          我们需要传递一个参数,以使用sep参数在串联字符串之间放置。 默认情况下,cat会忽略缺失值,但我们也可以使用na_rep参数指定如何处理它们。  

         Let’s create a new column by concatenating “col_c” and “col_d” with “-” separator.

          让我们通过将“ col_c”和“ col_d”与“-”分隔符连接起来创建一个新列。  

         df_sample['new']=df_sample['col_c'].str.cat(df_sample['col_d'], sep='-')df_sample

         

          

           

            

             

              

             

            

           

          

         

        

       

      

      

       

        

          奖励:对象与字符串 (Bonus: Object vs String) 

         Before pandas 1.0, only “object” datatype was used to store strings which cause some drawbacks because non-string data can also be stored using “object” datatype. Pandas 1.0 introduces a new datatype specific to string data which is StringDtype. As of now, we can still use object or StringDtype to store strings but in the future, we may be required to only use StringDtype.

          在pandas 1.0之前,仅使用“对象”数据类型存储字符串,这会带来一些缺点,因为非字符串数据也可以使用“对象”数据类型进行存储。 Pandas 1.0引入了特定于字符串数据的新数据类型StringDtype 。 到目前为止,我们仍然可以使用object或StringDtype来存储字符串,但是在将来,可能需要我们仅使用StringDtype。  

         

          One important thing to note here is that object datatype is still the default datatype for strings. To use StringDtype, we need to explicitly state it.

           这里要注意的一件事是对象数据类型仍然是字符串的默认数据类型。 要使用StringDtype,我们需要明确声明它。 

         

         We can pass “string” or pd.StringDtype() argument to dtype parameter to string datatype.

          我们可以将“ string ”或pd.StringDtype()参数传递给dtype参数,以传递给字符串数据类型。  

         

          

           

            

             

              

             

            

           

          

         

        

       

      

      

       

        

         Thank you for reading. Please let me know if you have any feedback.

          感谢您的阅读。 如果您有任何反馈意见,请告诉我。 

        

       

      

     

     

      翻译自: https://towardsdatascience.com/5-must-know-pandas-operations-on-strings-4f88ca6b8e25

     

     字符串操作截取后面的字符串

    展开全文
  • 那么久出现了 字符串的截取操作, 但是要考虑一个问题, 串前后有空格怎么办? 参考文档 = https://www.runoob.com/java/java-string-trim.html 使用 trim() 函数来, 去除字符串的前后空格而已, 不是去掉字符串里面...

    参考文章 = https://blog.csdn.net/lihua5419/article/details/84065674

    当一个字符串来的时候, 我们需要对他进行一些处理, 以后才能做保存等操作
    那么久出现了 字符串的截取操作, 但是要考虑一个问题, 串的前后有空格怎么办?

    参考文档 = https://www.runoob.com/java/java-string-trim.html

    使用 trim() 函数来, 去除字符串的前后空格而已, 不是去掉字符串里面的空格
    在这里插入图片描述
    这样就能只保存传过来的年份信息了, 我只需要年份的信息, 其他的可以在这个上面进行拓展.

    public class TestString {
    
        public static void main(String[] args) {
            String str = "   2020-09-03  ";
            System.out.println(str);
            String s = str.trim();
            System.out.println(s);
            String str2 = s.substring(0,4);
            System.out.println(str2);
        }
    }
    
    

    那么 substring() 方法的使用,就一目了然了

    String str2 = s.substring(start,end);
    // 不包含 end, 包含 start的值
    

    拓展一下, 获取指定字符前面的数据

    public class TestString {
    
        public static void main(String[] args) {
            String str="2647333022@qq.com";
            //截取@之前的字符串
            String str1=str.substring(0, str.indexOf("@"));
            //2647333022
            System.out.println(str1);
            String str2=str.substring(10);
            //@qq.com
            System.out.println(str2);
        }
    }
    

    获取str2的substring(一个参数)的源码
    在这里插入图片描述
    再进new String(1,2,3) 三个参数的newString的源码 , 转换成了字符数组的操作

    在第3661行只剩了, 最后面的几个字符了
    在这里插入图片描述
    所以输出 了 @qq.com

    展开全文
  • 一、字符串的连接“. ”可以连接两个及以上的字符为一个字符串二、字符串的... 必选参数str要操作的字符串对象,可选charlist删除选择的参数(0 null x0B垂直制表符 tab制表符 回车符 换行符 “”空格 2.ltrim() 去除...

    一、字符串的连接

    “. ”可以连接两个及以上的字符为一个字符串

    二、字符串的操作

    1.trim()去除字符串首尾空格和特殊字符,并返回处理后字符串。

    string trim(string str[,string charlist]); 必选参数str要操作的字符串对象,可选charlist删除选择的参数(0 null x0B垂直制表符 tab制表符 回车符 换行符 “”空格

    2.ltrim() 去除字符串左边空格和特殊字符

    3.rtrim() 去除字符串右边空格和特殊字符

    4.获取字符串长度

    int strlen(string str)汉字占两个字符,数字,英文,小数点,下划线和空格占用一个字符。

    5.截取字符串

    string substr(string str,int start[,int length]) 字符串对象,start截取字符串开始位置(参数为负从末尾开始截取),指定截取字符串的个数(length为负,取到倒数第length个字符)

    echo substr($text,0,20).”...”; 输出文本超过20位,然后输出省略号

    中文截取无乱码md_substr()

    6.比较字符串

    1.按字节比较

    int strcmp(string str1,string str2)区分字符大小写 相等返回0,str1大于str2返回值大于0,反之返回值小于0

    int strcasecmp(string str1,string str2)不区分字符大小写

    2.自然排序法

    int strnatcmp(string str1,string str2)

    int strnatcasecmp(string str1,string str2)

    7.检索字符串

    1. 查找指定关键字从前到后

    string strstr(string haystack,string needle) 从haystack中进行搜索,needle要搜索的对象

    从后序的位置开始检索

    string strchr(string haystack,string needle)

    检索指定字符串出现的次数

    int substr_count(string haystack,string needle)

    8.替换字符串

    mixed str_replace(mixed needle,mixed new_neddle,mixed haystack[,int &count]

    neddle指定查找的字符串,new_neddle指定替换的值haystack指定查找的范围,可选获取执行替换的次数。

    mixed substr_replace(string str,string repl,int start [,int &length]

    Str指定要操作的原始字符,repl指定替换后的新字符串,start指定字符串开始的位置,可选指定替换字符串的长度。

    9.格式化字符串

    string number_format(float number[,int num_decimal_places,][string dec_seperator,string thousands_format])

    10. 分割字符串

    按照指定的规则对一个字符串惊醒分解返回值为数组。

    array explode(string separator,string str[,int limit])

    指定分割的标识符(为””返回false,不在str中返回包含str单个元素的数组),所选参数,可选参数返回的数组最多包含limit个元素,而最后的元素将包含str剩余的部分;如果limit为负,返回除了最后的-limit个元素外所有元素。

    11.合成字符串

    string implode(string glue,array pieces)

    12.转换字符串

    strtoupper() 将字符串转换成大写

    strtolower() 将字符串转换成小写

    ucfirst();

    ucword()

    13.和HTML标签相关的字符串格式化

    nl2br

    htmllentities();

    htmlspecialchars

    stripslashes()

    strip_tags()

    1. 字符串格式化的函数

    number_format()

    strrev()

    md5();

    md5_file();

    6f12bc6faab22218b20ac18df0b9f2c7.png
    展开全文
  • 但是现在每一行的空格符数不同,因此在用substring时括号里参数不同,几百行肯定不能每个都手动输入,所以现在我想有什么办法可以解决,获得四列数据并运算 新手初到,希望大家踊跃解答,我会给分
  • Java字符串截取方法

    2019-10-22 15:33:23
    用例字符串 String cmd = "pid 6239,uid = 10032,tag = ... 1、去掉字符串中的空格 cmd = cmd.replaceAll("\\s*", "");// 去掉所有空格 去掉后的结果为: pid6239,uid=10032,tag=null,\[]pkg=com.android.calendar...

    用例字符串

    String cmd = "pid 6239,uid = 10032,tag = null,pkg =com.android.calendar";
    

    1、去掉字符串中的空格

    cmd = cmd.replaceAll("\\s*", "");// 去掉所有空格
    

    去掉后的结果为:
    pid6239,uid=10032,tag=null,\[]pkg=com.android.calendar

    2、截取某个字符后面的字符串

    cmd = cmd.split("6239")[1];//去掉6239及前面的字符
    

    截取后的结果为:
    ,uid=10032,tag=null,\[]pkg=com.android.calendar

    3、截取某个字符前面的字符串

    int idx = cmd.indexOf("com");// 去掉com后面的字符
    cmd = cmd.substring(0, idx);
    

    截取后的结果为:
    ,uid=10032,tag=null,[]pkg=

    4、把字符串中某个字符替换为空

    cmd = cmd.replaceAll("null", "ok");// 把null替换为ok
    

    替换后的结果为:
    ,uid=10032,tag=ok,[]pkg=

    5、去掉字符串中的中括号[ ]

    cmd = cmd.replaceAll("[\\[\\]]", "");// 把中括号替换为空字符
    

    去掉中括号结果为:
    ,uid=10032,tag=ok,\pkg=

    6、去掉字符串中的斜杠\

    cmd = cmd.replaceAll("\\\\", "");// 去掉斜杠
    

    去掉后的结果为:
    ,uid=10032,tag=ok,pkg=

    展开全文
  • Java在长字符串中查找短字符串的实现多种方法,...方案一:补充:在输入短字符串时,如果有空格,可以在比较前用 trim()方法截取前后空白/*该方法只适用于有特殊分割符号的字符串*/System.out.println("请输入字符串...
  • 方案一:补充:在输入短字符串时,如果有空格,可以在比较前用 trim()方法截取前后空白/*该方法只适用于有特殊分割符号的字符串*/System.out.println("请输入字符串:");Scanner str1=new Scanner(System.in);String...
  • 方案一:补充:在输入短字符串时,如果有空格,可以在比较前用 trim()方法截取前后空白/*该方法只适用于有特殊分割符号的字符串*/System.out.println("请输入字符串:");Scanner str1=new Scanner(System.in);String...
  • 前言对于字符串的操作,我们常用就是trim()去除前后空格、subString()截取字符串,其他不多。下表中是字符串常用方法。大家要记一记啊,特别是chartAt()方法比较重要。因为一不小心就会被面试问到哦。...
  • /*该方法只适用于有特殊分割符号的字符串*/ System.out.println("请输入字符串:"); Scanner str1=new Scanner(System.in); String s=str1.nextLine(); System.out.println("请输入第二个字符串:");
  • 模拟一下trim方法,实现去除字符串两端的空格 问题描述 模拟一下trim方法,实现去除字符串两端的空格 解题思路 从前后依次遍历到不是空格的位置,最后进行截取 java代码实现 package com.myy.service; /** * 模拟...
  • java字符串处理类

    2020-04-27 18:52:22
    Java字符串处理工具类 该工具类包含了如下功能: ...从指定位置截取指定长度的字符串 将"/“替换成”" 去除字符串中头和尾的空格 得到大括号中的内容 去掉字符串中、前、后的空格 将null换成"" ...
  • 前言对于字符串的操作,我们常用就是trim()去除前后空格、subString()截取字符串,其他不多。下表中是字符串常用方法。大家要记一记啊,特别是chartAt()方法比较重要。因为一不小心就会被面试问到哦。...
  • JAVA网课|字符串

    2020-12-09 10:06:50
    P133 字符串概述 String类在java.lang包下==》故不需要导包 所有双引号字符串,都是String类对象 字符串的特点 内容永不可变 字符串可以共享使用 效果相当于char[]字符数组,底层原理是byte...P138 字符串的截取方法
  • 前言对于字符串的操作,我们常用就是trim()去除前后空格、subString()截取字符串,其他不多。下表中是字符串常用方法。大家要记一记啊,特别是chartAt()方法比较重要。因为一不小心就会被面试问到哦。...
  • java字符串操作大全

    2012-11-12 13:17:06
     (6)、append() 可把任何类型数据的字符串表示连接到调用的StringBuffer对象的末尾。  例:int a=42;  StringBuffer sb=new StringBuffer(40);  String s=sb.append("a=").append(a).append("!").toString();...
  • 项目中用到是ORACLE数据库,字符编码是GBK,所以在数据库中一个汉字占用2个...项目中有个需求是到处文件,要求:每个字段按一定长度到处,如果数据不足则空格,如果超过指定长度则截取。 import java.io....
  • 前言对于字符串的操作,我们常用就是trim()去除前后空格、subString()截取字符串,其他不多。下表中是字符串常用方法。大家要记一记啊,特别是chartAt()方法比较重要。因为一不小心就会被面试问到哦。...
  • String类方法介绍:1.substing(m,n) :字符截取,m开始的位置,n停止的位置(不包含n),截取后的字符串长度为m-n.2.+ :拼接,字符串拼接非字符串,非字符串都会被转换成字符串,双引号中的空格,也会被打印输出。...
  • 操作思路:1.使用 ADODB.stream 把字符串转换为UFT-8编码集存储到文件 AA2....字符串截取第二行,去空格,输出MD5值VBA代码:strBody = "VBA变量字符串转换为UFT-8MD5加密"'MD5计算Dim stream As...
  • //去除字符串前后空格 public class Trim {  public static void main(String[] args) {  String s=" t e s t ";  System.out.println(s);  s=s.trim();//去掉前后空格  System.out.println(s);  s=s....
  • 字符类型 char 1~2000字节 固定长度字符串,长度不够空格补充 varchar2 1~4000字节 可变长度字符串,与CHAR类型相比,使用VARCHAR2可以节省磁盘空间,但查询效率没有char类型高 数值类型 Number(m,n) m(1~38) ...
  • 反转单词顺序【java

    2021-03-21 19:18:13
    4.遍历字符串数组,从最后一个开始,使用StringBuilder中append()来拼接新的字符串,除了最后一个遍历出来的元素其它后面拼接一个空格 //StringBuilder不懂可以看一下...
  • Java基础知识整理2

    2016-08-04 21:38:11
    1.Public String trim(),一个字符串s通过调用方法trim()得到一个字符串对象,该字符串对象是s去掉前后空格后的字符串; 2.Public String substring(int start,int end),字符串对象调用该方法获得一个当前字符串...
  • 思路:1、判断第一个字符是否为空格,是则继续往后判断,直到不是空格为止,字符串后面则从往前判断2、判断完,剩下的就是要截取的字符串*/public String trim(String str) {if (str == null) {return "字符串为...
  • isBlank(CharSequence) 可以检查空,null和空格isEmpty(CharSequence)只能检查空和nullSubstring/Left/Right/Mid字符串截取LeftPad/RightPad/Center/Repeat 字符串补全trim(CharSequence) 去除字符串两...
  • 工具做起事来常常...字符串处理:org.apache.commons.lang.StringUtilsisBlank(CharSequence) 可以检查空,null和空格isEmpty(CharSequence)只能检查空和nullSubstring/Left/Right/Mid字符串截取LeftPad/RightPa...
  • java应用正则表达式

    2019-08-14 11:53:48
    java应用正则表达式项目中常常字符串需要截取,正则表达式这玩意不常用,会忘了,...“Bearer 1231234” 这是一个输入字符串,我需要拿到这字符串后截取后面数字部分 . String authBearer = request.getHeader(...
  • 一、字符串的截取 比如下面这张图: 意思是从下标为7地方开始截取到第10位停止 打印出来结果是: 当然还有一种方法: 打印出来是一样: 然后就是转换大小写; toLowerCase是变成小写意思,可见java....

空空如也

空空如也

1 2 3
收藏数 60
精华内容 24
关键字:

java截取空格后的字符串

java 订阅