首页 > 解决方案 > 尝试遍历字符串并查找 char 是字母还是数字,然后将其附加到不同的字符串

问题描述

我需要遍历 String userInput 并查找 char 是字母还是数字,如果是,则需要将该 char 附加到 String endProduct。

    public static String converter(String userInput) {
        String endProduct = "";
        char c = userInput.charAt(0);
        Stack<Character> stack = new Stack<Character>();
        int len = userInput.length();
        //iterates through the word to find symbols and letters, if letter or digit it appends to endProduct, if symbol it pushes onto stack
        for (int i = c; i < len; i++) {
            if (Character.isLetter(userInput.charAt(i))) {
                endProduct = endProduct + c;
                System.out.println(c);
            }//end if
            else if(Character.isDigit(userInput.charAt(i))){
                endProduct = endProduct + c;
                System.out.println(c);
            }

标签: javastringappend

解决方案


这里有一些方法可以做到这一点。

方法 1 - 传统 Java。

private static String converter(String userInput) {
  final StringBuilder endProduct = new StringBuilder();

  for(char ch : userInput.toCharArray()) {
    if(Character.isLetterOrDigit(ch)) endProduct.append(ch);
  }

  return endProduct.toString();
}

方法 2 - 流。

private static String converter(String userInput) {
  int[] chars = userInput.codePoints().filter(Character::isLetterOrDigit).toArray();

  return new String(chars, 0, chars.length);*/
}

或者

private static String converter(String userInput) {
  return userInput.codePoints().filter(Character::isLetterOrDigit).collect(StringBuilder::new, StringBuilder::appendCodePoint, StringBuilder::append).toString();
}

推荐阅读