2013-05-01 167 views
-2

我可以以某种方式从字符串的末尾删除n个字符吗?从字符串末尾删除n个字符

在例如:

String a = "Hello"; 
a -= 1; 

并将结果a = "Hell"

+2

号为什么你会指望减1,从“你好”减去字母o? – geoffspear 2013-05-01 12:57:34

+0

呃...不!甚至没有其他任何我知道的语言。 – OldCurmudgeon 2013-05-01 12:57:44

+1

使用'substring'方法 – 2013-05-01 12:57:58

回答

1

试试这个:

a = a.substring(0,a.length()-1); 

看到这个String#substring(int beginIndex,int endIndex)要更好地理解:

返回一个新的str这是该字符串的子字符串。子字符串 从指定的beginIndex开始,并扩展到 index endIndex - 1的字符。因此子字符串的长度为 endIndex-beginIndex。

+0

详细说明您的答案,让新手知道您在说什么 – developer 2013-05-01 13:22:32

+0

@developer编辑我的答案。 – 2013-05-01 13:25:59

+0

1+感谢您更改您的答案。 – developer 2013-05-01 14:29:50

1

号,你可以期待的最好结果是这样的:

a = a.substring(0, a.length() - 1); 

或者这样:

a = new StringBuilder(a).deleteCharAt(a.length() - 1).toString(); 

甚至这样的:

a = a.replaceAll(".$", ""); 
+0

这应该是 \t \t'a = a.substring(0,a.length() - 1);' – 2013-05-01 12:59:38

+0

@邹邹OK。我在我的iPhone上输入这些东西:/ – Bohemian 2013-05-01 13:04:30

1

答案是definetely不是!但是,如果要使用基于整数的索引按整数删除字符,则可以使用substring。试试这个:

String a = "Hello"; 

a = a.substring(0,a.length()-1); 

System.out.println(a); 
0

不,你不能从一个字符串subract,但是你可以达到你想要什么样子:

 String in="hello"; 
     String out=in.substring(0, 4); //takes the characters 0,1,2,3 from in (i.e. h e l l) 

     System.out.println(out); 
2

好了的,而不是给你-1,我可以帮助:) 在Java中,做

String a = "Hello"; 
int stepsBack = 1; 

if (a.length()>=stepsBack) //Avoid StringIndexOutOfBoundsException 
    a=a.substring(0,a.length()-stepsBack); 

System.out.println(a);