我需要在xml本身中将 text =“font roboto regular”更改为 Font Roboto Regular ,该怎么办?
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:textSize="18sp"
android:textColor="@android:color/black"
android:fontFamily="roboto-regular"
android:text="font roboto regular"
android:inputType="textCapWords"
android:capitalize="words"/>
答案 0 :(得分:36)
您可以使用此代码。
String str = "font roboto regular";
String[] strArray = str.split(" ");
StringBuilder builder = new StringBuilder();
for (String s : strArray) {
String cap = s.substring(0, 1).toUpperCase() + s.substring(1);
builder.append(cap + " ");
}
TextView textView = (TextView) findViewById(R.id.textView);
textView.setText(builder.toString());
答案 1 :(得分:17)
如果有人在寻找kotlin
这样做的方法,那么代码变得非常简单和漂亮。
yourTextView.text = yourText.split(' ').joinToString(" ") { it.capitalize() }
答案 2 :(得分:8)
试试这个......
将字符串中每个单词的第一个字母转换为大写字母的方法。
private String capitalize(String capString){
StringBuffer capBuffer = new StringBuffer();
Matcher capMatcher = Pattern.compile("([a-z])([a-z]*)", Pattern.CASE_INSENSITIVE).matcher(capString);
while (capMatcher.find()){
capMatcher.appendReplacement(capBuffer, capMatcher.group(1).toUpperCase() + capMatcher.group(2).toLowerCase());
}
return capMatcher.appendTail(capBuffer).toString();
}
用法:
String chars = capitalize("hello dream world");
//textView.setText(chars);
System.out.println("Output: "+chars);
结果:
Output: Hello Dream World
答案 3 :(得分:6)
<强> 科特林 强>
val strArrayOBJ = "Your String".split(" ".toRegex()).dropLastWhile { it.isEmpty() }.toTypedArray()
val builder = StringBuilder()
for (s in strArrayOBJ) {
val cap = s.substring(0, 1).toUpperCase() + s.substring(1)
builder.append("$cap ")
}
txt_OBJ.text=builder.toString()
答案 4 :(得分:4)
修改已接受的答案,以清除任何现有的大写字母,并防止接受的答案留下的尾随空格。
public static String capitalize(@NonNull String input) {
String[] words = input.toLowerCase().split(" ");
StringBuilder builder = new StringBuilder();
for (int i = 0; i < words.length; i++) {
String word = words[i];
if (i > 0 && word.length() > 0) {
builder.append(" ");
}
String cap = word.substring(0, 1).toUpperCase() + word.substring(1);
builder.append(cap);
}
return builder.toString();
}
答案 5 :(得分:3)
您可以使用此方法以编程方式执行此操作
public String wordFirstCap(String str)
{
String[] words = str.trim().split(" ");
StringBuilder ret = new StringBuilder();
for(int i = 0; i < words.length; i++)
{
if(words[i].trim().length() > 0)
{
Log.e("words[i].trim",""+words[i].trim().charAt(0));
ret.append(Character.toUpperCase(words[i].trim().charAt(0)));
ret.append(words[i].trim().substring(1));
if(i < words.length - 1) {
ret.append(' ');
}
}
}
return ret.toString();
}
如果您想在xml中执行此操作,请参阅this。
答案 6 :(得分:2)
首字母大写
android:inputType="textCapWords"
大写第一句话:
android:inputType="textCapSentences"
答案 7 :(得分:1)
android:inputType="textCapWords"
这不适用于TextView
,仅对EditText
有效。所以你必须手动完成。
您可以使用capitalizeFully使每个单词以大写字母开头。
答案 8 :(得分:1)
function onEdit(e){
var s = e.source;
var row = e.range.getRow();
var fCell = s.getRange('F'+row);
var fValue = fCell.getValue();
Spreadsheet.getActive().toast(fValue);
}
已被弃用。
请按以下步骤操作: https://stackoverflow.com/a/31699306/4409113
- 点按Android Lollipop主屏幕上的“设置”图标 设备
- 在“设置”屏幕上,向下滚动到“个人”部分和 点击'语言&amp;输入'部分。
- 在'语言&amp;输入'部分,选择你的键盘(即 标记为当前键盘。)
- 现在点按“偏好设置”。
- 点按以查看“自动资本化”以启用它。
醇>
然后它应该有用。
如果没有,我宁愿在android:capitalize
中这样做。
答案 9 :(得分:1)
https://stackoverflow.com/a/1149869/2725203
查看ACL WordUtils。
WordUtils.capitalize(“your string”)==“Your String”
答案 10 :(得分:0)
您可以使用
private String capitalize(final String line) {
return Character.toUpperCase(line.charAt(0)) + line.substring(1);
}
参考此How to capitalize the first character of each word in a string
答案 11 :(得分:0)
另一种方法是使用frameCount
类。以下方法适用于句子或EditText视图中的任意数量的单词。我用它来大写应用程序中的全名字段。
StringTokenizer
答案 12 :(得分:0)
要将句子中的每个单词大写,请使用该特定textView的xml中的以下属性。
机器人:的inputType = “textCapWords”
答案 13 :(得分:0)
在 kotlin 中,字符串扩展
fun String?.capitalizeText() = (this?.toLowerCase(Locale.getDefault())?.split(" ")?.joinToString(" ") { if (it.length <= 1) it else it.capitalize(Locale.getDefault()) }?.trimEnd())?.trim()
答案 14 :(得分:0)
Kotlin 扩展函数,每个单词大写
val String?.capitalizeEachWord
get() = (this?.lowercase(Locale.getDefault())?.split(" ")?.joinToString(" ") {
if (it.length <= 1) it else it.replaceFirstChar { firstChar ->
if (firstChar.isLowerCase()) firstChar.titlecase(
Locale.getDefault()
) else firstChar.toString()
}
}?.trimEnd())?.trim()