在java中使用字符串数组时,将其转换为小写

问题描述 投票:4回答:10

我在java中得到了一个一维的字符串数组,其中我想将所有字符串更改为小写,然后将其与原始数组进行比较,以便我可以让程序检查我的字符串/数组中是否没有大写字符。

我尝试过使用x.toLowercase,但这只适用于单个字符串。有没有办法让我将整个字符串转换为小写?

亲切的问候,品牌

java arrays string lowercase
10个回答
5
投票

如果您想要一个简短的示例,您可以执行以下操作

String[] array = ...
String asString = Arrays.toString(array);
if(asString.equals(asString.toLowerCase())
   // no upper case characters.

0
投票

以下代码可以帮助您

package stringtoupercasearray;

import java.util.Scanner;

/**
 *
 * @author ROBI
 */
public class StringToUperCaseArray {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        int size;
        String result = null;
        System.out.println("Please enter the size of the array: ");
        Scanner r=new Scanner(System.in);
        size=r.nextInt();
        String[] s=new String[size];
        System.out.println("Please enter the sritngs:");
        for(int i=0;i<s.length;i++){

        s[i]=r.next();

        }
        System.out.print("The given sritngs are:");
        for (String item : s) {
            //s[i]=r.nextLine();
            System.out.print(item+"\n");
        }

         System.out.println("After converting to uppercase the string is:");
        for (String item : s) {
            result = item.toUpperCase();
             System.out.println(result);
        }


    }

}

4
投票
arraylist.stream().map(s -> s.toLowerCase()).collect(Collectors.toList()) 

可以帮到你


2
投票

在Java中调用集合的每个元素都没有简单的方法;您需要手动创建一个正确大小的新数组,遍历原始数组中的元素,并依次将它们的小写模拟添加到新数组中。

但是,考虑到你特别想做的事情,你不需要一次比较整个阵列就可以做到这一点,并且会产生复制一切的成本。你可以简单地遍历数组 - 如果你发现一个不等于它的小写版本的元素,你可以返回false。如果到达数组末尾而未找到任何此类元素,则可以返回true

事实上这会更有效率,因为:

  • 如果找到具有大写字符的元素,则可以短路进一步评估。 (想象一下百万字符串数组的第一个元素有一个大写的情况;你刚刚保存了一百万次调用小写())。
  • 您不必为比较之外不会使用的整个额外阵列分配内存。
  • 即使在最好的情况下,你提出的场景也会涉及一次迭代通过数组来获得小写版本,然后通过数组再次迭代来实现equals。即使没有短路的可能性,在单次迭代中进行两者也可能更有效。

2
投票

只是两行

     String[] array = {"One", "Two"};
    for(int i=0;i<array.length;i++){
        if(!array[i].equals(array[i].toLowerCase()))
            System.out.println("It contains uppercase char");
        array[i] = array[i].toLowerCase();
    }
    for(int i=0;i<array.length;i++)
        System.out.println(array[i]);

OUTPUT:

It contains uppercase char
It contains uppercase char
one
two

1
投票

需要两个步骤:

  1. 迭代字符串数组
  2. 将每一个转换为小写。

1
投票

以前我们使用过(在Java <8)

String[] x = {"APPLe", "BaLL", "CaT"};
for (int i = 0; i < x.length; i++) {
    x[i] = x[i].toLowerCase();
}

现在在Java8中:

x= Arrays.asList(x).stream().map(String::toLowerCase).toArray(String[]::new);

1
投票
String  array[]= {"some values"};

String str= String.join(',',array);

String array_uppercase[]=str.toLowerCase().split(',');

0
投票

您可以将字符串数组转换为单个字符串,然后将其转换为小写,请按照下面的示例代码

public class Test {

public static void main(String[] args) {
    String s[]={"firsT ","seCond ","THird "};
    String str = " ";
      for (int i = 0; i < s.length; i++) {
      str = str + s[i];
      }

      System.out.println(str.toLowerCase());

}
}

0
投票
import java.util.*;

public class WhatEver {

  public static void main(String[] args) {
    List <String> list = new ArrayList();

    String[] x = {"APPLe", "BaLL", "CaT"};
    for (String a : x) {
      list.add(a.toLowerCase); 
    }
    x = list.toArray(new String[list.size()]);
  }
} 
© www.soinside.com 2019 - 2024. All rights reserved.