加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 将句子转换为数组并删除字符并打印新句子

发布时间:2020-12-15 04:13:34 所属栏目:Java 来源:网络整理
导读:免责声明:这是一项家庭作业 该计划的目标是:提出一个句子,然后: – 将大写转换为小写(不使用.toLowercase()) – 删除非a-z,A-Z和0-9的所有字符 – 打印新句子 – ……更重要但不重要的东西. 好的,我做了什么. 我将我的String(句子)转换为char数组. 我创建
免责声明:这是一项家庭作业

该计划的目标是:提出一个句子,然后:
– 将大写转换为小写(不使用.toLowercase())
– 删除非a-z,A-Z和0-9的所有字符
– 打印新句子
– ……更重要但不重要的东西.

好的,我做了什么.

>我将我的String(句子)转换为char数组.
>我创建了一个for循环来遍历我的数组中的所有字符
>如果char是大写的,我使用ASCII将其转换为小写

我遇到的问题是:
– 看起来我更改了char C但是它没有在我的数组中以小写形式存储?
– 如何检测不允许的字符,并从我的数组中删除它?

我的代码:

import java.util.Scanner;

public class sentence {
public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    String zin = ""; 

    System.out.print("Voer een zin in: ");
    if (scanner.hasNextLine())                        
        zin = scanner.nextLine().trim();

    if (zin.equals("")) {
        System.out.print("Geen Invoer!");
        System.exit(0);
    }

    char[] zinArray = zin.toCharArray(); 
    for (int i = 0; i < zinArray.length; i++) { 
        char c = zinArray[i]; 
        if (c >= 'A' && c <= 'Z') {
        c = (char)(c + 32);
        } else if (c >= 58 && c <= 64) {

        } else if (c >= 91 && c <= 96) {

        } else if (c  123 && c <= 126) {
      }

    }
    }
}

谁能指出我正确的方向?

谢谢 :)

解决方法

请考虑以下行:

char c = zinArray[i];

分配复制值(如果是类实例,则为引用).所以你在zinArray [i]创建了一个角色的副本.这意味着更改变量c的值不会更改zinArray [i]中存储的值.您必须对数组项执行更改,如下所示:

zinArray[i] = (char)(c + 32);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读