在java中,我有一个字符串:
Jamaica
我想删除字符串的第一个字符,然后返回 amaica 我该怎么做?
amaica
pbgvytdp1#
使用 substring() 参数为的函数 1 从位置1(在第一个字符之后)到字符串结尾的子字符串(保留第二个参数默认为字符串的完整长度)。
substring()
1
"Jamaica".substring(1);
r3i60tvu2#
public String removeFirstChar(String s){ return s.substring(1); }
wi3ka0sx3#
使用 substring() 并给出要从前面修剪的字符数。
String value = "Jamaica"; value = value.substring(1);
回答:“amaica”
b91juud34#
在删除字符之前,使用java三元运算符快速检查字符是否存在。仅当前导字符存在时,才会将其删除;如果传递了一个空字符串,则返回blankstring。
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
String a = "Cool"; a = a.replace("o",""); //variable 'a' contains the string "Cl"
String b = "Cool"; b = b.replaceFirst("o",""); //variable 'b' contains the string "Col"
5lwkijsr5#
可以使用 String 类,该类只接受开头索引并返回以指定索引处的字符开头并扩展到字符串结尾的子字符串。
String
String str = "Jamaica"; str = str.substring(1);
y1aodyip6#
public String removeFirst(String input) { return input.substring(1); }
unftdfkk7#
在java中要理解的关键是字符串是不可变的——您不能更改它们。所以说“从字符串中删除字符”是没有意义的。相反,您只需要使用所需的字符创建一个新字符串。这个问题中的其他帖子提供了各种方法,但重要的是要理解这些方法不会以任何方式更改原始字符串。对旧字符串的任何引用都将继续引用旧字符串(除非将它们更改为引用其他字符串),并且不会受新创建的字符串的影响。这对性能有很多影响。每次“修改”字符串时,实际上都是在创建一个包含所有开销(内存分配和垃圾回收)的新字符串。因此,如果您想对字符串进行一系列修改,并且只关心最终结果(只要您“修改”中间字符串,中间字符串就会失效),那么使用stringbuilder或stringbuffer可能更有意义。
btqmn9zl8#
你可以这样做:
String str = "Jamaica"; str = str.substring(1, title.length()); return str;
public String removeFirstChar(String str){ return str.substring(1, title.length()); }
xt0899hw9#
方法返回一个新字符串,该字符串包含当前包含在此序列中的字符的子序列。子字符串从指定的 start 并延伸到 index end - 1 .它有两种形式。首先是 String substring(int FirstIndex) 这里,firstindex指定子字符串开始的索引。此窗体返回从firstindex开始并运行到调用字符串结尾的子字符串的副本。 String substring(int FirstIndex, int endIndex) 这里,firstindex指定开始索引,endindex指定停止点。返回的字符串包含从开始索引到结束索引(但不包括)的所有字符。
start
index end - 1
String substring(int FirstIndex)
String substring(int FirstIndex, int endIndex)
String str = "Amiyo"; // prints substring from index 3 System.out.println("substring is = " + str.substring(3)); // Output 'yo'
brgchamk10#
我遇到了这样一种情况,我不仅要删除第一个字符(如果它是一个 # ,但第一组字符。 String myString = ###Hello World 可能是起点,但我只想保持 Hello World . 这可以按以下方式进行。
#
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 而且也很有效。
while
if
f0ofjuux11#
另一个解决方案,您可以使用 replaceAll 用一些正则表达式 ^.{1} (regex demo)例如:
replaceAll
^.{1}
String str = "Jamaica"; int nbr = 1; str = str.replaceAll("^.{" + nbr + "}", "");//Output = amaica
zzlelutf12#
删除前导字符的我的版本,一个或多个。例如,string 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); }
4c8rllxm13#
tv.doOnTextChanged { text: CharSequence?, start, count, after -> val length = text.toString().length if (length==1 && text!!.startsWith(" ")) { tv?.setText("") } }
13条答案
按热度按时间pbgvytdp1#
使用
substring()
参数为的函数1
从位置1(在第一个字符之后)到字符串结尾的子字符串(保留第二个参数默认为字符串的完整长度)。r3i60tvu2#
wi3ka0sx3#
使用
substring()
并给出要从前面修剪的字符数。回答:“amaica”
b91juud34#
在java中,仅当前导字符是某个字符时才删除它
在删除字符之前,使用java三元运算符快速检查字符是否存在。仅当前导字符存在时,才会将其删除;如果传递了一个空字符串,则返回blankstring。
印刷品:
java,删除字符串中任意位置的所有字符示例:
java,删除字符串中任意位置的第一个字符示例:
5lwkijsr5#
可以使用
String
类,该类只接受开头索引并返回以指定索引处的字符开头并扩展到字符串结尾的子字符串。y1aodyip6#
unftdfkk7#
在java中要理解的关键是字符串是不可变的——您不能更改它们。所以说“从字符串中删除字符”是没有意义的。相反,您只需要使用所需的字符创建一个新字符串。这个问题中的其他帖子提供了各种方法,但重要的是要理解这些方法不会以任何方式更改原始字符串。对旧字符串的任何引用都将继续引用旧字符串(除非将它们更改为引用其他字符串),并且不会受新创建的字符串的影响。
这对性能有很多影响。每次“修改”字符串时,实际上都是在创建一个包含所有开销(内存分配和垃圾回收)的新字符串。因此,如果您想对字符串进行一系列修改,并且只关心最终结果(只要您“修改”中间字符串,中间字符串就会失效),那么使用stringbuilder或stringbuffer可能更有意义。
btqmn9zl8#
你可以这样做:
或者一般来说:
xt0899hw9#
方法返回一个新字符串,该字符串包含当前包含在此序列中的字符的子序列。
子字符串从指定的
start
并延伸到index end - 1
.它有两种形式。首先是
String substring(int FirstIndex)
这里,firstindex指定子字符串开始的索引。此窗体返回从firstindex开始并运行到调用字符串结尾的子字符串的副本。String substring(int FirstIndex, int endIndex)
这里,firstindex指定开始索引,endindex指定停止点。返回的字符串包含从开始索引到结束索引(但不包括)的所有字符。示例
brgchamk10#
我遇到了这样一种情况,我不仅要删除第一个字符(如果它是一个
#
,但第一组字符。String myString = ###Hello World
可能是起点,但我只想保持Hello World
. 这可以按以下方式进行。对于op的情况,替换
while
与if
而且也很有效。f0ofjuux11#
另一个解决方案,您可以使用
replaceAll
用一些正则表达式^.{1}
(regex demo)例如:zzlelutf12#
删除前导字符的我的版本,一个或多个。例如,string str1=“01234”,删除前导“0”时,结果将是“1234”。对于字符串str2=“000123”,结果将再次为“123”。对于字符串str3=“000”,结果将是空字符串:“”。这种功能在将数字字符串转换为数字时通常很有用。与regex(replaceall(…))相比,这种解决方案的优点是速度更快。这在处理大量字符串时非常重要。
4c8rllxm13#
Kotlin工作得很好。