Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将字符串转换为";“字符”;Java中的数组_Java_Arrays_String_Character_Java 8 - Fatal编程技术网

将字符串转换为";“字符”;Java中的数组

将字符串转换为";“字符”;Java中的数组,java,arrays,string,character,java-8,Java,Arrays,String,Character,Java 8,我想将字符串转换为类的对象数组,但无法执行转换。我知道我可以使用toCharArray()方法将字符串转换为原始数据类型“char”的数组,但这无助于将字符串转换为类型为的对象数组 我该怎么做呢?在这种情况下,您必须编写自己的方法。使用循环,使用charAt(i)获取每个字符,并使用arrayname[i]=string.charAt[i]将其设置为character[]数组。为什么不自己编写一个小方法呢 public Character[] toCharacterArray( String s

我想将
字符串
转换为类的对象数组,但无法执行转换。我知道我可以使用
toCharArray()
方法将字符串转换为原始数据类型“char”的数组,但这无助于将字符串转换为类型为的对象数组


我该怎么做呢?

在这种情况下,您必须编写自己的方法。使用循环,使用
charAt(i)
获取每个字符,并使用
arrayname[i]=string.charAt[i]
将其设置为
character[]
数组。为什么不自己编写一个小方法呢

public Character[] toCharacterArray( String s ) {

   if ( s == null ) {
     return null;
   }

   int len = s.length();
   Character[] array = new Character[len];
   for (int i = 0; i < len ; i++) {
      /* 
      Character(char) is deprecated since Java SE 9 & JDK 9
      Link: https://docs.oracle.com/javase/9/docs/api/java/lang/Character.html
      array[i] = new Character(s.charAt(i));
      */
      array[i] = s.charAt(i);
   }

   return array;
}
公共字符[]到字符数组(字符串s){
如果(s==null){
返回null;
}
int len=s.length();
字符[]数组=新字符[len];
对于(int i=0;i
使用以下方法:

String str = "testString";
char[] charArray = str.toCharArray();
Character[] charObjectArray = ArrayUtils.toObject(charArray);
String#toCharArray
返回一个
char
数组,您拥有的是一个
Character
数组。在大多数情况下,使用
char
Character
并不重要。您的问题是数组不是自动装箱的,我建议您使用字符数组(
char[]
)。

另一种方法

String str="I am a good boy";
    char[] chars=str.toCharArray();

    Character[] characters=new Character[chars.length];
    for (int i = 0; i < chars.length; i++) {
        characters[i]=chars[i];
        System.out.println(chars[i]);
    }
String str=“我是个好孩子”;
char[]chars=str.toCharArray();
字符[]字符=新字符[字符长度];
for(int i=0;i
我希望下面的代码能帮助您

String s="Welcome to Java Programming";
char arr[]=s.toCharArray();
for(int i=0;i<arr.length;i++){
    System.out.println("Data at ["+i+"]="+arr[i]);
}

如果您正在使用JTextField,那么它将非常有用

public JTextField display;
String number=e.getActionCommand();

display.setText(display.getText()+number);

ch=number.toCharArray();
for( int i=0; i<ch.length; i++)
    System.out.println("in array a1= "+ch[i]);
公共JTextField显示;
字符串编号=e.getActionCommand();
display.setText(display.getText()+数字);
ch=number.toCharArray();

对于(int i=0;i而言,链接始终是最好的:D

String str = "somethingPutHere";
Character[] c = ArrayUtils.toObject(str.toCharArray());

此方法将字符串作为参数并返回字符数组

/**
 * @param sourceString
 *            :String as argument
 * @return CharcterArray
 */
public static Character[] toCharacterArray(String sourceString) {
    char[] charArrays = new char[sourceString.length()];
    charArrays = sourceString.toCharArray();
    Character[] characterArray = new Character[charArrays.length];
    for (int i = 0; i < charArrays.length; i++) {
        characterArray[i] = charArrays[i];
    }
    return characterArray;
}
/**
*@param sourceString
*:字符串作为参数
*@返回字符数组
*/
公共静态字符[]toCharacterArray(字符串源字符串){
char[]chararray=新字符[sourceString.length()];
chararray=sourceString.toCharArray();
Character[]characterArray=新字符[chararray.length];
for(int i=0;i
一个衬里,带有:

它所做的是:

  • 获取字符的
    IntStream
    (您可能还需要查看
    codePoints()
  • 将每个“character”值映射到
    character
    (您需要强制转换以实际说明它实际上是一个
    char
    ,然后Java会自动将它框到
    character
  • 通过调用
    toArray()

如果您不想依赖第三方API,以下是JDK7或以下版本的工作代码。我不会像上面其他解决方案那样实例化临时字符对象。foreach循环更具可读性,请参见:)


我在java.io中使用了StringReader类。它的一个函数
read(char[]cbuf)
将字符串的内容读入数组

String str = "hello";
char[] array = new char[str.length()];
StringReader read = new StringReader(str);

try {
    read.read(array); //Reads string into the array. Throws IOException
} catch (IOException e) {
    e.printStackTrace();
}

for (int i = 0; i < str.length(); i++) {
        System.out.println("array["+i+"] = "+array[i]);
}

将字符串转换为字符数组,然后将字符数组转换回字符串

   //Givent String
   String given = "asdcbsdcagfsdbgdfanfghbsfdab";

   //Converting String to Character Array(It's an inbuild method of a String)
   char[] characterArray = given.toCharArray();
   //returns = [a, s, d, c, b, s, d, c, a, g, f, s, d, b, g, d, f, a, n, f, g, h, b, s, f, d, a, b]
  int length = Arrays.toString(characterArray).replaceAll("[, ]","").length();

  //First Way to get the string back
  Arrays.toString(characterArray).replaceAll("[, ]","").substring(1,length-1)
  //returns asdcbsdcagfsdbgdfanfghbsfdab
  or 
  // Second way to get the string back
  Arrays.toString(characterArray).replaceAll("[, ]","").replace("[","").replace("]",""))
 //returns asdcbsdcagfsdbgdfanfghbsfdab
String.valueOf(characterArray);
Arrays.stream(characterArray)
           .mapToObj(i -> (char)i)
           .collect(Collectors.joining());
//单向:将字符数组转换回字符串

   //Givent String
   String given = "asdcbsdcagfsdbgdfanfghbsfdab";

   //Converting String to Character Array(It's an inbuild method of a String)
   char[] characterArray = given.toCharArray();
   //returns = [a, s, d, c, b, s, d, c, a, g, f, s, d, b, g, d, f, a, n, f, g, h, b, s, f, d, a, b]
  int length = Arrays.toString(characterArray).replaceAll("[, ]","").length();

  //First Way to get the string back
  Arrays.toString(characterArray).replaceAll("[, ]","").substring(1,length-1)
  //returns asdcbsdcagfsdbgdfanfghbsfdab
  or 
  // Second way to get the string back
  Arrays.toString(characterArray).replaceAll("[, ]","").replace("[","").replace("]",""))
 //returns asdcbsdcagfsdbgdfanfghbsfdab
String.valueOf(characterArray);
Arrays.stream(characterArray)
           .mapToObj(i -> (char)i)
           .collect(Collectors.joining());
//第二种方法:将字符数组转换回字符串

   //Givent String
   String given = "asdcbsdcagfsdbgdfanfghbsfdab";

   //Converting String to Character Array(It's an inbuild method of a String)
   char[] characterArray = given.toCharArray();
   //returns = [a, s, d, c, b, s, d, c, a, g, f, s, d, b, g, d, f, a, n, f, g, h, b, s, f, d, a, b]
  int length = Arrays.toString(characterArray).replaceAll("[, ]","").length();

  //First Way to get the string back
  Arrays.toString(characterArray).replaceAll("[, ]","").substring(1,length-1)
  //returns asdcbsdcagfsdbgdfanfghbsfdab
  or 
  // Second way to get the string back
  Arrays.toString(characterArray).replaceAll("[, ]","").replace("[","").replace("]",""))
 //returns asdcbsdcagfsdbgdfanfghbsfdab
String.valueOf(characterArray);
Arrays.stream(characterArray)
           .mapToObj(i -> (char)i)
           .collect(Collectors.joining());
//第三种方法:将字符数组转换回字符串

   //Givent String
   String given = "asdcbsdcagfsdbgdfanfghbsfdab";

   //Converting String to Character Array(It's an inbuild method of a String)
   char[] characterArray = given.toCharArray();
   //returns = [a, s, d, c, b, s, d, c, a, g, f, s, d, b, g, d, f, a, n, f, g, h, b, s, f, d, a, b]
  int length = Arrays.toString(characterArray).replaceAll("[, ]","").length();

  //First Way to get the string back
  Arrays.toString(characterArray).replaceAll("[, ]","").substring(1,length-1)
  //returns asdcbsdcagfsdbgdfanfghbsfdab
  or 
  // Second way to get the string back
  Arrays.toString(characterArray).replaceAll("[, ]","").replace("[","").replace("]",""))
 //returns asdcbsdcagfsdbgdfanfghbsfdab
String.valueOf(characterArray);
Arrays.stream(characterArray)
           .mapToObj(i -> (char)i)
           .collect(Collectors.joining());
将字符串转换为字符数组

Character[] charObjectArray =
                           givenString.chars().
                               mapToObj(c -> (char)c).
                               toArray(Character[]::new);
 String givenString = "MyNameIsArpan";
char[] givenchararray = givenString.toCharArray();


     String.valueOf(givenchararray).chars().mapToObj(c -> 
                         (char)c).toArray(Character[]::new);
String subStringFromCharacterArray = 

              Arrays.stream(charObjectArray,2,6).
                          map(String::valueOf).
                          collect(Collectors.joining());
将字符数组转换为字符数组

Character[] charObjectArray =
                           givenString.chars().
                               mapToObj(c -> (char)c).
                               toArray(Character[]::new);
 String givenString = "MyNameIsArpan";
char[] givenchararray = givenString.toCharArray();


     String.valueOf(givenchararray).chars().mapToObj(c -> 
                         (char)c).toArray(Character[]::new);
String subStringFromCharacterArray = 

              Arrays.stream(charObjectArray,2,6).
                          map(String::valueOf).
                          collect(Collectors.joining());
将字符数组转换为字符数组的好处您可以使用Arrays.stream函数获取子数组

Character[] charObjectArray =
                           givenString.chars().
                               mapToObj(c -> (char)c).
                               toArray(Character[]::new);
 String givenString = "MyNameIsArpan";
char[] givenchararray = givenString.toCharArray();


     String.valueOf(givenchararray).chars().mapToObj(c -> 
                         (char)c).toArray(Character[]::new);
String subStringFromCharacterArray = 

              Arrays.stream(charObjectArray,2,6).
                          map(String::valueOf).
                          collect(Collectors.joining());

String[]arr={“abc”、“cba”、“dac”、“cda”};
Map Map=newhashmap();
字符串=新字符串();
for(字符串a:arr){
string=string.concat(a);
}
System.out.println(字符串);
对于(int i=0;i

//输出{a=4,b=2,c=4,d=2}

你所说的“不适合字符数组”是什么意思?你能重新解释一下这个词,或者说清楚一点,或者提供一个代码示例吗?要将
char
转换为
character
,请使用
character.valueOf(mychar)
。如果是数组,则循环每个元素并转换。java需要一个映射函数lambda expressions
ArrayUtils
来自
commons lang
,不是JDK,对吧?这根本不是OP想要的。
链接总是最好的
False。ArrayUtils不是JDK的一部分。如果是一个巨大的字符串,那么会实例化太多字符对象。为什么不自己编写一个小方法呢?因为已经存在一个方法(toCharArray()),并且已经存在的方法有更多的工程师致力于并感兴趣于保证该函数的性能和可靠性,而不是从stackoverflow post复制/粘贴的方法。@Holdoff您完全正确。但是,toCharArray()返回数组的基元类型,而不是OP需要的字符对象。当然,您可以再次循环字符[],将其转换为字符[]。但是,在字符串广告中循环创建字符对象是如此简单,如果不想引入第三方库,我不明白为什么不直接滚动自己的字符串。@realPK如果不