gpt4 book ai didi

java - 如何使用 charAt() 函数分割字符串?

转载 作者:行者123 更新时间:2023-12-01 21:43:28 26 4
gpt4 key购买 nike

我试图拆分一个包含 3 个不同部分的句子,它们被空格分开。

我尝试使用 boolean 值来计算需要移动到下一部分的位置,但它仍然不起作用并返回 null...

String sentence="name   password   A";
String username;
String password;
char type;

for(int j=0;j<sentence.length();j++){
SS=sentence.charAt(i)
String usernamehelper="";
String passwordhelper="";
char typehelper=' ';
boolean usernameend=false;
boolean passwordend=false;
boolean typeend=false;

if(SS!=' ' && usernameend==false){
usernamehelper += String.valueOf(SS);
}else if(SS==' ' && usernameend==false){
usernameend=true;
}else if(SS!=' ' && usernameend==true && passwordend==false){
passwordhelper += String.valueOf(SS);
}else if(SS==' ' && usernameend==true && passwordend==false){
passwordend=true;
}else if(SS!=' ' && usernameend==true && passwordend==true){
typehelper=SS;
typeend=true;
username=usernamehelper;
password=passwordhelper;
type=typehelper;
user1=new user(username, password, type);
}
}

非常感谢!!!

最佳答案

首先,您的代码存在很多问题,例如:在 for 循环内初始化的变量、缺少分号...

此外,使用多个空格分隔文本也会导致出现问题。

我尝试使用 less ifbranch 来更正您的代码。请参阅下面的代码

    String sentence="name    password    A";
String username = "";
String password ="";
char SS ;

//Result : name , password , type
String[] result = new String[3] ;
int i= 0 ;

// To treat multiple spaces
boolean previousSpace = false ;

String textHelper="";

for(int j=0;j<sentence.length();j++){
SS=sentence.charAt(j);
char typehelper=' ';
boolean typeend=false;

if(SS!=' '){
textHelper+=String.valueOf(SS);
previousSpace = false ;
}else if(SS==' ' && previousSpace == false ){
result[i] = textHelper ;
textHelper = "" ;
previousSpace = true ;
i++ ;
}

}

//Last Text ( type )
result[i]= textHelper ;

System.out.println("username " + result[0]);
System.out.println("password " +result[1]);
System.out.println("type " + result[2]);

但是,您可以使用 split("\\s+") 方法在短短两行内完成所有这些操作。

\\s+ :匹配一个或多个空白字符的序列 请参阅下面的代码

    String sentence="name    password    A";
String[] result =sentence.split("\\s+");

System.out.println("username " + result[0]);
System.out.println("password " +result[1]);
System.out.println("type " + result[2]);

关于java - 如何使用 charAt() 函数分割字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58784280/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com