如何得到一个字符串最后一个.之前的所有字符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何得到一个字符串最后一个.之前的所有字符相关的知识,希望对你有一定的参考价值。

public static void main(String[] args)
String str1="abcdefghij";
String str=(str1.subSequence(0,str1.length()-1)).toString(); //截取该字符串从开始位置到倒数第二个字符的位置,并转为字符串形式。
System.out.println(str);


如果你说的是 小数点前面的所有字符就是下面这段:
public static void main(String[] args)
String str1="abc.def.ghi.j";
int num=0;
while((str1.indexOf(".", num))!=-1)
num=str1.indexOf(".",num)+1;

String str=(str1.subSequence(0,num-1)).toString();
System.out.println(str);
参考技术A 你可以通过算出数字和字母的个数来推算出字符串的个数。

如何在Java中使用正则表达式模式在字符串的最后一个字母之前插入-符号

【中文标题】如何在Java中使用正则表达式模式在字符串的最后一个字母之前插入-符号【英文标题】:how to insert a - symbol before the last alphabet in a string using regex pattern in java 【发布时间】:2020-10-20 06:28:33 【问题描述】:

嗨,我有一个值,例如 023A,我需要通过删除前导 0 将其替换或格式化为 23-A,它是 123A,它应该是 123-A 任何人都可以在 java regex 中帮助我如何做到这一点?

【问题讨论】:

这里的替换逻辑请描述的更清楚。 input.replaceAll("^(0*)(.*)(\\w)$", "$2-$3"); 假设感兴趣的字符串由一个或多个数字后跟一个大写字母组成,您可以将正则表达式\b0*(\d+)([A-Z])\b的匹配替换为"$1-$2"$1$2捕获组 1 和 2 的内容。ref @CarySwoveland 添加评论链接的工具提示说:避免在 cmets 中回答问题。我认为您的评论是一个很好的答案。 【参考方案1】:

我已经编写了一些特定于您所要求的模式的代码,希望对您有所帮助。

代码:

import java.util.Scanner;

public class Demo 


static String format(String str)

    String string = "";
        
    try
    
     //remove every non-numerical character at the start of string, if there is
     //remove every zero at the start of string   
     while(str.startsWith("0") || Character.isLetter(str.charAt(0))) 
        str = str.substring(1);
     
         
     //Gets the index of firstmost non-numerical character
     int index = 0;
     boolean valueFound = false;
     for(int i = 0; i <= str.length() -1; i++)
     
      if(Character.isLetter(str.charAt(i))) 
        index = i;
        valueFound = true;
        break;
          
         
         
     if(valueFound)
     
      string = str.replaceFirst(String.valueOf(str.charAt(index)), "-" + 
      String.valueOf(str.charAt(index)));
     
      
    catch(Exception ex)ex.printStackTrace(); 
        
    return string;   
 
    
    public static void main(String[] args) 
        Scanner in = new Scanner(System.in);
        System.out.print("Input a combination : "); 
        String line = in.nextLine();
        System.out.println("Input   :" + line);
        System.out.println("Output  :" + format(line));
    
    

测试 1:

Input a combination : 023A
Input   :023A
Output  :23-A

测试 2:

Input a combination : 123A
Input   :123A
Output  :123-A

【讨论】:

以上是关于如何得到一个字符串最后一个.之前的所有字符的主要内容,如果未能解决你的问题,请参考以下文章

Java Regex - 获取字符串中子字符串之前的所有单词

如何删除Java中特定字符之前的所有字符?

MySQL字符串的最后一个索引

java如何得到字符串里后面几个字符

在最后一个正斜杠之前删除部分字符串

RegEx JS-如何在字符串之后和之前/或结尾处获取所有内容[重复]