Java-删除字符串的第一个字符
在Java中,我有一个字符串:Java-删除字符串的第一个字符,java,string,substring,Java,String,Substring,在Java中,我有一个字符串: Jamaica 我想删除字符串的第一个字符,然后返回amaica 如何执行此操作?使用参数为1的函数来获取从位置1(在第一个字符之后)到字符串末尾的子字符串(保留第二个参数,默认为字符串的全长) public String removeFirstChar(String s){ return s.substring(1); } 您可以使用String类的方法,该方法只获取起始索引,并返回以指定索引处的字符开头并延伸到字符串末尾的子字符串 String st
Jamaica
我想删除字符串的第一个字符,然后返回amaica
如何执行此操作?使用参数为1的函数来获取从位置1(在第一个字符之后)到字符串末尾的子字符串(保留第二个参数,默认为字符串的全长)
public String removeFirstChar(String s){
return s.substring(1);
}
您可以使用String
类的方法,该方法只获取起始索引,并返回以指定索引处的字符开头并延伸到字符串末尾的子字符串
String str = "Jamaica";
str = str.substring(1);
在Java中要理解的关键是字符串是不可变的——您不能更改它们。所以说“从字符串中删除字符”毫无意义。相反,您只需要使用所需的字符创建一个新字符串。这个问题中的其他帖子为您提供了多种方法,但重要的是要理解这些方法不会以任何方式更改原始字符串。对旧字符串的任何引用都将继续引用旧字符串(除非将其更改为引用其他字符串),并且不会受新创建的字符串的影响
这对性能有许多影响。每次“修改”字符串时,实际上是在创建一个包含所有开销(内存分配和垃圾收集)的新字符串。因此,如果您想对字符串进行一系列修改,并且只关心最终结果(只要您“修改”中间字符串,它们就会失效),那么使用StringBuilder或StringBuffer可能更有意义。在Java中,仅当前导字符是某个字符时,才删除它
在删除字符之前,使用Java三元运算符快速检查字符是否存在。这将仅在前导字符存在时去除前导字符,如果传递空白字符串,则返回空白字符串
String header = "";
header = header.startsWith("#") ? header.substring(1) : header;
System.out.println(header);
header = "foobar";
header = header.startsWith("#") ? header.substring(1) : header;
System.out.println(header);
header = "#moobar";
header = header.startsWith("#") ? header.substring(1) : header;
System.out.println(header);
印刷品:
blankstring
foobar
moobar
Java,删除字符串中任意位置的字符的所有实例:
Java,删除字符串中任意位置的字符的第一个实例:
使用substring()
并给出要从前面修剪的字符数
String value = "Jamaica";
value = value.substring(1);
回答:“amaica”方法返回一个新字符串,该字符串包含当前包含在此序列中的字符的子序列
子字符串从指定的开始
,并延伸到索引末尾-1的字符
它有两种形式。首先是
字符串子字符串(int FirstIndex)
在这里,FirstIndex指定子字符串的索引
开始。此表单返回开始于的子字符串的副本
FirstIndex并运行到调用字符串的末尾
字符串子字符串(int-FirstIndex,int-endIndex)
这里,FirstIndex指定开始索引,endIndex指定
停止点。返回的字符串包含所有字符
从开始索引到结束索引,但不包括
例子
您可以这样做:
String str = "Jamaica";
str = str.substring(1, title.length());
return str;
或一般而言:
我遇到了这样一种情况:我不仅要删除第一个字符(如果它是#
),还要删除第一组字符
String myString=####Hello World
可以作为起点,但我只想保留Hello World
while (myString.charAt(0) == '#') { // Remove all the # chars in front of the real string
myString = myString.substring(1, myString.length());
}
对于OP的情况,将while
替换为if
,它也可以工作。另一种解决方案,您可以使用带有一些正则表达式的replaceAll
来解决问题。{1}
()例如:
String str = "Jamaica";
int nbr = 1;
str = str.replaceAll("^.{" + nbr + "}", "");//Output = amaica
删除前导字符的我的版本,一个或多个。例如,字符串str1=“01234”,删除前导“0”时,结果将为“1234”。对于字符串str2=“000123”,结果将再次为“123”。对于字符串str3=“000”,结果将为空字符串:“。将数字字符串转换为数字时,此类功能通常很有用。与regex(replaceAll(…)相比,此解决方案的优点是速度更快。这在处理大量字符串时非常重要
public static String removeLeadingChar(String str, char ch) {
int idx = 0;
while ((idx < str.length()) && (str.charAt(idx) == ch))
idx++;
return str.substring(idx);
}
publicstaticstringremoveleadingchar(stringstr,charch){
int-idx=0;
而((idx
##科特林
#工作正常
tv.doOnTextChanged { text: CharSequence?, start, count, after ->
val length = text.toString().length
if (length==1 && text!!.startsWith(" ")) {
tv?.setText("")
}
}
您只需使用substring()
方法中的索引指示我们从何处获取结果字符串,在本例中,我们在第一个位置之后获取结果字符串,因为我们不希望在“牙买加”中使用“J”。如果要定义新函数,至少选择一个合适的名称,如removeFirst()
.DRY:header=header.substring(header.startsWith(“#”)1:0);
或带有正则表达式:header=header.replaceFirst(“^#“,”)
重要的是要注意,这实际上并不会从字符串中删除字符——它会生成一个新字符串,该字符串包含除第一个字符外的所有旧字符串的字符。无法实际修改字符串。该链接似乎不再有效。请尝试以下链接:是的,如果要删除第一个n ch字符串变量的字符执行以下操作:variable=variable.substring(n);如果myString==“#”,则会出现问题,因为字符串在某个点将超出边界。要防止出现这种情况,可以执行(!myString.isEmpty()&&myString.charAt(0))
String str = "Jamaica";
str = str.substring(1, title.length());
return str;
public String removeFirstChar(String str){
return str.substring(1, title.length());
}
while (myString.charAt(0) == '#') { // Remove all the # chars in front of the real string
myString = myString.substring(1, myString.length());
}
String str = "Jamaica";
int nbr = 1;
str = str.replaceAll("^.{" + nbr + "}", "");//Output = amaica
public static String removeLeadingChar(String str, char ch) {
int idx = 0;
while ((idx < str.length()) && (str.charAt(idx) == ch))
idx++;
return str.substring(idx);
}
tv.doOnTextChanged { text: CharSequence?, start, count, after ->
val length = text.toString().length
if (length==1 && text!!.startsWith(" ")) {
tv?.setText("")
}
}
String myString = "Jamaica"
String myStringWithoutJ = myString.substring(1)