2016-12-13 38 views
0

我对Java比较陌生,我一直在寻找Java的反向字符串代码。我理解它的大部分内容,但是这是我不了解的代码的一部分。在For循环中,我需要从整数长度中减去-1。为什么我需要这样做?如果没有这个代码执行失败,我想知道把握循环更深入的了解,今后为什么在Java的反向字符串程序中需要这么做?

String start = ""; 

String end = ""; 

Scanner input = new Scanner(System.in); 

System.out.println("Enter a string"); 

start = input.nextLine(); 

int length = start.length(); 

for(length = length - 1 ; length >= 0 ; length--) 

    end = end + start.charAt(length); 

System.out.println("This string reversed is " + end); 
+0

因为指数通常从0开始,大小= 3,指数是0,1,2。 – Thrasher

+0

你在哪里使用'长度'?在'charAt'中。 'charAt'对它的论点施加了什么限制? –

+0

这是其中一个问题,可能比您预期的要多一点。你打算只处理Unicode Basic Multilingual Plane,还是要支持Surrogate Pairs?请参阅http://stackoverflow.com/questions/7476535/how-to-get-a-reversed-string-unicode-safe –

回答

0

字符串,以及在更广泛的阵列,是零用C索引,C++,Java的。字符1位于位置0,字符2位于位置1等。

对于最后一个字符'n',它位于'n-1'位置。

0

长度为n的字符串在索引0 - (n-1)处具有字符,因此是初始化。调用var指数会更合适。

0

大多数数据结构的索引从“0”开始,而不是从“1”开始。 (即第一个元素的索引是“0”)因此,最后一个元素的索引等于元素的数量(即长度)-1。因此,如果你想从最后一个元素开始,那么你必须从索引length - 1开始。

1

通常您可以在Eclipse上检查Javadoc(如果您正在使用它)以查看有关您的代码的更多信息。 说,这是从字面上Javadoc

炭java.lang.String.charAt(INT指数)

返回指定索引处的char值。索引范围从0 到length() - 1。序列的第一个char值位于索引0, 下一个位于索引1,依此类推,与数组索引相同。

如果还不清楚,也许图像能够帮助:

ArrayLengthVsIndexs

相关问题