在 java中,我们需要遍历字符串,如何遍历呢?首先我们先了解一下遍历的概念: 在我们的计算机中,存储的都是二进制数据,为了方便存储和管理,我们把一段数据分成多个字符串。在 java中,遍历字符串是使用 set ()方法进行的。 set ()方法可以使用构造函数和自动构造函数进行遍历操作。另外还可以通过 findall ()方法进行遍历操作。在下面我们就来介绍一下如何通过 set ()方法进行遍历字符串:
-
1、使用构造函数
首先我们使用构造函数来遍历字符串: 在这里我们调用构造函数 set ()方法,调用此方法会自动创建一个空列表。然后我们把这个空列表的内容拷贝到字符串的末尾,并赋值给 str。这样就遍历完成了。set ()方法在使用的时候会进行一下检查,看是否为空,如果不是空的话,就会返回 true,否则会返回 false。 通过上面的代码我们可以看到: 第一行和第二行使用了构造函数遍历字符串,但是并没有创建空列表;第三行和第四行使用了自动构造函数遍历字符串,但是并没有创建空列表;第五行和第六行使用了构造函数和自动构造函数都创建了一个空列表,第六行使用了构造函数和自动构造函数都创建了一个空列表,第七行和第八行使用了自动构造函数创建了两个空列表。最后一列使用了自动构造函数创建了一个空数组。 这里我们可以看到:第一行和第二行使用的是自动构造函数遍历字符串;第三行和第四行使用的是构造函数遍历字符串;第七格和第八格使用的是自动构造函数遍历字符串。 那么接下来我们来了解一下为什么会出现上面的问题?原来是因为在 java中使用构造函数遍历字符串,可以一次性遍历多个字符串。而采用自动构造函数每次遍历的时候只能遍历空数组,所以就会出现上述的问题。 而自动构造函数的返回类型是 null,也就是说如果我们返回的是 null类型的值,那么这个空列表就不会被创建。上面我们已经介绍完了如何遍历字符串: 通过上面的分析我们知道,如果采用自动构造函数遍历字符串的话,每次遍历空数组都会创建一个空列表。这样在遍历完之后还需要再创建一个空列表,这样就造成了内存的浪费。所以我们想要提高遍历效率的话,尽量采用构造函数进行遍历操作。
-
2、使用自动构造函数
自动构造函数是一种特殊的方法,它是自动把一个对象转换成一个新的对象,当你在一个对象中声明一个自动构造函数时,自动构造函数会创建这个对象的子对象。自动构造函数使用相同的方法进行遍历操作,下面就来介绍一下如何使用自动构造函数遍历字符串: 我们来看一下下面这个示例代码: 上面这个代码实现了遍历字符串: 上面这个代码也是遍历字符串,但是它使用的是自动构造函数,它把字符串转换成了一个新的对象。注意:上面这个代码也是不可以调用 set ()方法进行遍历操作的。 下面再来看一下如何使用自动构造函数进行遍历字符串: 上面这个代码使用了自动构造函数,它创建了一个新的对象,并且对对象进行了初始化,可以使用 start ()方法来启动对象。但是由于 start ()方法是静态方法,所以在执行的时候会把程序运行到 start ()方法上,这样就会影响程序的执行速度。
-
3、使用 findall ()方法
findall ()方法可以用来遍历一个字符串,在遍历过程中,该方法会不断的遍历字符串的末尾。如果要在多个字符串中进行遍历,该方法会返回多个字符串。这里需要注意一下, findall ()方法不会遍历最后一个字符串,因为该方法不会遍历最后一个字符串的末尾,也不会遍历第一个字符串的末尾。 在使用 findall ()方法进行遍历时,需要注意以下两点: ①、当遍历结束后,可以对 findall ()方法返回的第一个字符串进行删除操作。但是由于 findall ()方法返回的第一个字符串不是最后一个字符串的末尾,所以如果想要删除最后一个字符串的末尾,需要重新定义一个新的 findall ()方法。 在上面我们了解了 set ()方法和 findall ()方法进行遍历操作时所使用的不同操作。在 java中还可以使用其他一些遍历的方法: *遍历链表中各个元素 上面我们已经介绍了三种遍历数据结构: set ()、 findall ()和构造函数。下面我们介绍一下自动构造函数。
-
4、使用自动构造函数和 findall ()方法的优缺点对比
自动构造函数:优点是,我们只需要定义一次自动构造函数,就可以创建任意多个对象。缺点是,自动构造函数的效率比较低,并且我们需要创建对象的时候,就需要调用自动构造函数,不方便。 findall ()方法:优点是,当我们给对象赋值时,默认值是一个整数。缺点是, findall ()方法的效率比较低,如果要返回的对象不为零则会导致程序崩溃。 自动构造函数和 findall ()方法各有优缺点。我们应该根据实际情况来选择使用哪种方法来进行遍历操作。 set ()方法可以遍历字符串; set ()方法需要在构造函数中定义对象才可以进行遍历操作;
-
常用的java遍历字符串代码 :
-
1. 使用for循环遍历字符串:
```
String str = "hello world";
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
System.out.println(c);
}
```
2. 使用增强for循环遍历字符串:
```
String str = "hello world";
for (char c : str.toCharArray()) {
System.out.println(c);
}
```
3. 使用while循环遍历字符串:
```
String str = "hello world";
int i = 0;
while (i < str.length()) {
char c = str.charAt(i);
System.out.println(c);
i++;
}
```
4. 使用Iterator遍历字符串:
```
String str = "hello world";
Iterator<Character> iterator = str.chars().mapToObj(c -> (char) c).iterator();
while (iterator.hasNext()) {
char c = iterator.next();
System.out.println(c);
}
```