【问题标题】:How to convert a textView text into a char variable?如何将 textView 文本转换为 char 变量?
【发布时间】:2019-11-26 02:52:34
【问题描述】:

所以我正在尝试将用户输入的 Edittext 文本转换为 char 变量,但我似乎无法使其工作。另外,没有找到任何有用的东西,所以决定在这里问。

提前致谢!

【问题讨论】:

  • 嗯,字符串是一个字符数组。您可以使用text.charAt(0) 从字符串中获取第一个字符。但你不能只将任何字符串转换为字符(因为字符串可能包含多个字符)。
  • 您可能对类型感到困惑。 char 是一回事,string 是另一回事。您可能需要 TextView 中的字符串,而不是单个字符。

标签: java android textview char


【解决方案1】:

使EditText 像这样

<EditText
    android:id="@+id/et1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:maxLength="1" />

它只需要来自用户的单个字符。现在你可以像这样在 String 中转换:

示例代码:

Edittext et = (Edittext) findViewById(R.id.et1); // This will take Edittext of You're layout
String value = et.getText().toString(); // Get User input String
Character char = value.charAt(0); // Character

根据你的问题。

删除最大长度。

<EditText
    android:id="@+id/et1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"/>

代码:

Edittext et = (Edittext) findViewById(R.id.et1); // This will take Edittext of You're layout
String value = et.getText().toString(); // Get User input String
for(int i = 0; i < value.length(); i++){
    Log.d("Char", value.charAt(i));
}

【讨论】:

  • 如果编辑文本必须使用 2 个字符而不是 1 个字符怎么办?
  • 根据问题字符仅包含 1 个字母。因此,如果用户尝试插入 2 个字符,它也将不起作用。您必须传递完整的字符串并应用逻辑才能获得正确的输出。
【解决方案2】:

就像@mumpitz 提到的,如果你只需要一个字符,你可以使用text.charAt(0)。 或者,如果您需要整个字符串,您可以使用text.toCharArray(),它会为您提供一个字符数组。

【讨论】:

    【解决方案3】:

    您可以使用str.getCharAt(index)String 获取字符。这里index是你想要的字符串的字符的索引。
    此外,您不能将String 更改为字符,但您可以将String 更改为字符的array

    String str = textView.getText().toString();
    char[] chr = str.toCharArray();
    

    此外,您可以使用该字符的索引从数组中获取任何字符。

    char c = chr[i]; // i is the index such as 0,1,2,3
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-29
      • 1970-01-01
      • 1970-01-01
      • 2017-03-05
      • 2021-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多